fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.6.23 (#4917)
* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v25.6.23 * Fix API break. --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Benoit Marty <benoit@matrix.org>
This commit is contained in:
parent
342aae624a
commit
bfd684cd53
20 changed files with 99 additions and 110 deletions
|
|
@ -9,7 +9,7 @@ package io.element.android.features.roomdetails.impl.analytics
|
|||
|
||||
import im.vector.app.features.analytics.plan.RoomModeration
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
|
||||
internal fun RoomMember.Role.toAnalyticsMemberRole(): RoomModeration.Role = when (this) {
|
||||
|
|
@ -22,7 +22,7 @@ internal fun analyticsMemberRoleForPowerLevel(powerLevel: Long): RoomModeration.
|
|||
return RoomMember.Role.forPowerLevel(powerLevel).toAnalyticsMemberRole()
|
||||
}
|
||||
|
||||
internal fun AnalyticsService.trackPermissionChangeAnalytics(initial: RoomPowerLevels?, updated: RoomPowerLevels) {
|
||||
internal fun AnalyticsService.trackPermissionChangeAnalytics(initial: RoomPowerLevelsValues?, updated: RoomPowerLevelsValues) {
|
||||
if (updated.ban != initial?.ban) {
|
||||
capture(RoomModeration(RoomModeration.Action.ChangePermissionsBanMembers, analyticsMemberRoleForPowerLevel(updated.ban)))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ class RolesAndPermissionsPresenter @Inject constructor(
|
|||
) = launch(dispatchers.io) {
|
||||
runUpdatingState(resetPermissionsAction) {
|
||||
analyticsService.capture(RoomModeration(RoomModeration.Action.ResetPermissions))
|
||||
room.resetPowerLevels().map {}
|
||||
room.resetPowerLevels()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import io.element.android.features.roomdetails.impl.analytics.trackPermissionCha
|
|||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
|
|
@ -59,8 +59,8 @@ class ChangeRoomPermissionsPresenter @AssistedInject constructor(
|
|||
|
||||
private val items: ImmutableList<RoomPermissionType> = itemsForSection(section)
|
||||
|
||||
private var initialPermissions by mutableStateOf<RoomPowerLevels?>(null)
|
||||
private var currentPermissions by mutableStateOf<RoomPowerLevels?>(null)
|
||||
private var initialPermissions by mutableStateOf<RoomPowerLevelsValues?>(null)
|
||||
private var currentPermissions by mutableStateOf<RoomPowerLevelsValues?>(null)
|
||||
private var saveAction by mutableStateOf<AsyncAction<Unit>>(AsyncAction.Uninitialized)
|
||||
private var confirmExitAction by mutableStateOf<AsyncAction<Unit>>(AsyncAction.Uninitialized)
|
||||
|
||||
|
|
|
|||
|
|
@ -8,12 +8,12 @@
|
|||
package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions
|
||||
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
data class ChangeRoomPermissionsState(
|
||||
val section: ChangeRoomPermissionsSection,
|
||||
val currentPermissions: RoomPowerLevels?,
|
||||
val currentPermissions: RoomPowerLevelsValues?,
|
||||
val items: ImmutableList<RoomPermissionType>,
|
||||
val hasChanges: Boolean,
|
||||
val saveAction: AsyncAction<Unit>,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ package io.element.android.features.roomdetails.impl.rolesandpermissions.permiss
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
|
||||
class ChangeRoomPermissionsStateProvider : PreviewParameterProvider<ChangeRoomPermissionsState> {
|
||||
|
|
@ -36,7 +36,7 @@ class ChangeRoomPermissionsStateProvider : PreviewParameterProvider<ChangeRoomPe
|
|||
|
||||
internal fun aChangeRoomPermissionsState(
|
||||
section: ChangeRoomPermissionsSection,
|
||||
currentPermissions: RoomPowerLevels = previewPermissions(),
|
||||
currentPermissions: RoomPowerLevelsValues = previewPermissions(),
|
||||
items: List<RoomPermissionType> = ChangeRoomPermissionsPresenter.itemsForSection(section),
|
||||
hasChanges: Boolean = false,
|
||||
saveAction: AsyncAction<Unit> = AsyncAction.Uninitialized,
|
||||
|
|
@ -52,8 +52,8 @@ internal fun aChangeRoomPermissionsState(
|
|||
eventSink = eventSink,
|
||||
)
|
||||
|
||||
private fun previewPermissions(): RoomPowerLevels {
|
||||
return RoomPowerLevels(
|
||||
private fun previewPermissions(): RoomPowerLevelsValues {
|
||||
return RoomPowerLevelsValues(
|
||||
// MembershipModeration section
|
||||
invite = RoomMember.Role.ADMIN.powerLevel,
|
||||
kick = RoomMember.Role.MODERATOR.powerLevel,
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ import io.element.android.libraries.designsystem.theme.components.Text
|
|||
import io.element.android.libraries.designsystem.theme.components.TextButton
|
||||
import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
|
@ -133,7 +133,7 @@ fun ChangeRoomPermissionsView(
|
|||
private fun SelectRoleItem(
|
||||
permissionsItem: RoomPermissionType,
|
||||
role: RoomMember.Role,
|
||||
currentPermissions: RoomPowerLevels?,
|
||||
currentPermissions: RoomPowerLevelsValues?,
|
||||
onClick: (RoomPermissionType, RoomMember.Role) -> Unit
|
||||
) {
|
||||
val title = when (role) {
|
||||
|
|
@ -153,7 +153,7 @@ private fun SelectRoleItem(
|
|||
)
|
||||
}
|
||||
|
||||
private fun RoomPowerLevels.isSelected(item: RoomPermissionType, role: RoomMember.Role): Boolean {
|
||||
private fun RoomPowerLevelsValues.isSelected(item: RoomPermissionType, role: RoomMember.Role): Boolean {
|
||||
return when (item) {
|
||||
RoomPermissionType.BAN -> RoomMember.Role.forPowerLevel(ban) == role
|
||||
RoomPermissionType.INVITE -> RoomMember.Role.forPowerLevel(invite) == role
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ import io.element.android.libraries.architecture.AsyncAction
|
|||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
|
||||
import io.element.android.libraries.matrix.test.room.defaultRoomPowerLevels
|
||||
import io.element.android.services.analytics.test.FakeAnalyticsService
|
||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
|
|
@ -121,7 +120,7 @@ class RolesAndPermissionPresenterTest {
|
|||
val presenter = createRolesAndPermissionsPresenter(
|
||||
analyticsService = analyticsService,
|
||||
room = FakeJoinedRoom(
|
||||
resetPowerLevelsResult = { Result.success(defaultRoomPowerLevels()) }
|
||||
resetPowerLevelsResult = { Result.success(Unit) }
|
||||
)
|
||||
)
|
||||
moleculeFlow(RecompositionMode.Immediate) {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import io.element.android.libraries.architecture.AsyncAction
|
|||
import io.element.android.libraries.matrix.api.room.RoomMember.Role.ADMIN
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember.Role.MODERATOR
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember.Role.USER
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.test.room.FakeBaseRoom
|
||||
import io.element.android.libraries.matrix.test.room.FakeJoinedRoom
|
||||
import io.element.android.libraries.matrix.test.room.defaultRoomPowerLevels
|
||||
|
|
@ -133,7 +133,7 @@ class ChangeBaseRoomPermissionsPresenterTest {
|
|||
|
||||
(items.last() as? Event.Item<ChangeRoomPermissionsState>)?.value?.run {
|
||||
assertThat(currentPermissions).isEqualTo(
|
||||
RoomPowerLevels(
|
||||
RoomPowerLevelsValues(
|
||||
invite = MODERATOR.powerLevel,
|
||||
kick = MODERATOR.powerLevel,
|
||||
ban = MODERATOR.powerLevel,
|
||||
|
|
@ -296,18 +296,7 @@ class ChangeBaseRoomPermissionsPresenterTest {
|
|||
analyticsService = analyticsService,
|
||||
)
|
||||
|
||||
private fun defaultPermissions() = defaultRoomPowerLevels().run {
|
||||
RoomPowerLevels(
|
||||
invite = invite,
|
||||
kick = kick,
|
||||
ban = ban,
|
||||
redactEvents = redactEvents,
|
||||
sendEvents = sendEvents,
|
||||
roomName = roomName,
|
||||
roomAvatar = roomAvatar,
|
||||
roomTopic = roomTopic,
|
||||
)
|
||||
}
|
||||
private fun defaultPermissions() = defaultRoomPowerLevels()
|
||||
|
||||
private suspend fun TurbineTestContext<ChangeRoomPermissionsState>.awaitUpdatedItem(): ChangeRoomPermissionsState {
|
||||
skipItems(1)
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ jsoup = "org.jsoup:jsoup:1.20.1"
|
|||
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
|
||||
molecule-runtime = "app.cash.molecule:molecule-runtime:2.1.0"
|
||||
timber = "com.jakewharton.timber:timber:5.0.1"
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.6.18"
|
||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:25.6.23"
|
||||
matrix_richtexteditor = { module = "io.element.android:wysiwyg", version.ref = "wysiwyg" }
|
||||
matrix_richtexteditor_compose = { module = "io.element.android:wysiwyg-compose", version.ref = "wysiwyg" }
|
||||
sqldelight-driver-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import io.element.android.libraries.matrix.api.core.SessionId
|
|||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.api.room.tombstone.PredecessorRoom
|
||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||
import io.element.android.libraries.matrix.api.timeline.ReceiptType
|
||||
|
|
@ -89,7 +89,7 @@ interface BaseRoom : Closeable {
|
|||
/**
|
||||
* Gets the power levels of the room.
|
||||
*/
|
||||
suspend fun powerLevels(): Result<RoomPowerLevels>
|
||||
suspend fun powerLevels(): Result<RoomPowerLevelsValues>
|
||||
|
||||
/**
|
||||
* Gets the role of the user with the provided [userId] in the room.
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
|||
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
|
||||
import io.element.android.libraries.matrix.api.room.join.JoinRule
|
||||
import io.element.android.libraries.matrix.api.room.knock.KnockRequest
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange
|
||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
|
|
@ -118,9 +118,9 @@ interface JoinedRoom : BaseRoom {
|
|||
|
||||
suspend fun updateUsersRoles(changes: List<UserRoleChange>): Result<Unit>
|
||||
|
||||
suspend fun updatePowerLevels(roomPowerLevels: RoomPowerLevels): Result<Unit>
|
||||
suspend fun updatePowerLevels(roomPowerLevelsValues: RoomPowerLevelsValues): Result<Unit>
|
||||
|
||||
suspend fun resetPowerLevels(): Result<RoomPowerLevels>
|
||||
suspend fun resetPowerLevels(): Result<Unit>
|
||||
|
||||
suspend fun setName(name: String): Result<Unit>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import io.element.android.libraries.matrix.api.room.BaseRoom
|
|||
import io.element.android.libraries.matrix.api.room.MessageEventType
|
||||
import io.element.android.libraries.matrix.api.room.StateEventType
|
||||
|
||||
data class RoomPowerLevels(
|
||||
data class RoomPowerLevelsValues(
|
||||
val ban: Long,
|
||||
val invite: Long,
|
||||
val kick: Long,
|
||||
|
|
@ -27,7 +27,7 @@ import io.element.android.libraries.matrix.api.room.RoomNotificationSettingsStat
|
|||
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
|
||||
import io.element.android.libraries.matrix.api.room.join.JoinRule
|
||||
import io.element.android.libraries.matrix.api.room.knock.KnockRequest
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange
|
||||
import io.element.android.libraries.matrix.api.room.roomNotificationSettings
|
||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||
|
|
@ -40,7 +40,6 @@ import io.element.android.libraries.matrix.impl.room.history.map
|
|||
import io.element.android.libraries.matrix.impl.room.join.map
|
||||
import io.element.android.libraries.matrix.impl.room.knock.RustKnockRequest
|
||||
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher
|
||||
import io.element.android.libraries.matrix.impl.room.powerlevels.RoomPowerLevelsMapper
|
||||
import io.element.android.libraries.matrix.impl.roomdirectory.map
|
||||
import io.element.android.libraries.matrix.impl.timeline.RustTimeline
|
||||
import io.element.android.libraries.matrix.impl.util.MessageEventContent
|
||||
|
|
@ -364,25 +363,25 @@ class JoinedRustRoom(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun updatePowerLevels(roomPowerLevels: RoomPowerLevels): Result<Unit> = withContext(roomDispatcher) {
|
||||
override suspend fun updatePowerLevels(roomPowerLevelsValues: RoomPowerLevelsValues): Result<Unit> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
val changes = RoomPowerLevelChanges(
|
||||
ban = roomPowerLevels.ban,
|
||||
invite = roomPowerLevels.invite,
|
||||
kick = roomPowerLevels.kick,
|
||||
redact = roomPowerLevels.redactEvents,
|
||||
eventsDefault = roomPowerLevels.sendEvents,
|
||||
roomName = roomPowerLevels.roomName,
|
||||
roomAvatar = roomPowerLevels.roomAvatar,
|
||||
roomTopic = roomPowerLevels.roomTopic,
|
||||
ban = roomPowerLevelsValues.ban,
|
||||
invite = roomPowerLevelsValues.invite,
|
||||
kick = roomPowerLevelsValues.kick,
|
||||
redact = roomPowerLevelsValues.redactEvents,
|
||||
eventsDefault = roomPowerLevelsValues.sendEvents,
|
||||
roomName = roomPowerLevelsValues.roomName,
|
||||
roomAvatar = roomPowerLevelsValues.roomAvatar,
|
||||
roomTopic = roomPowerLevelsValues.roomTopic,
|
||||
)
|
||||
innerRoom.applyPowerLevelChanges(changes)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun resetPowerLevels(): Result<RoomPowerLevels> = withContext(roomDispatcher) {
|
||||
override suspend fun resetPowerLevels(): Result<Unit> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
RoomPowerLevelsMapper.map(innerRoom.resetPowerLevels())
|
||||
innerRoom.resetPowerLevels().let {}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,14 +24,14 @@ import io.element.android.libraries.matrix.api.room.RoomMembersState
|
|||
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
||||
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.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.api.room.tombstone.PredecessorRoom
|
||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||
import io.element.android.libraries.matrix.api.timeline.ReceiptType
|
||||
import io.element.android.libraries.matrix.impl.room.draft.into
|
||||
import io.element.android.libraries.matrix.impl.room.member.RoomMemberListFetcher
|
||||
import io.element.android.libraries.matrix.impl.room.member.RoomMemberMapper
|
||||
import io.element.android.libraries.matrix.impl.room.powerlevels.RoomPowerLevelsMapper
|
||||
import io.element.android.libraries.matrix.impl.room.powerlevels.RoomPowerLevelsValuesMapper
|
||||
import io.element.android.libraries.matrix.impl.room.tombstone.map
|
||||
import io.element.android.libraries.matrix.impl.roomdirectory.map
|
||||
import io.element.android.libraries.matrix.impl.timeline.toRustReceiptType
|
||||
|
|
@ -132,9 +132,11 @@ class RustBaseRoom(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun powerLevels(): Result<RoomPowerLevels> = withContext(roomDispatcher) {
|
||||
override suspend fun powerLevels(): Result<RoomPowerLevelsValues> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
RoomPowerLevelsMapper.map(innerRoom.getPowerLevels())
|
||||
innerRoom.getPowerLevels().use {
|
||||
RoomPowerLevelsValuesMapper.map(it.values())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -167,55 +169,55 @@ class RustBaseRoom(
|
|||
|
||||
override suspend fun canUserInvite(userId: UserId): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserInvite(userId.value)
|
||||
innerRoom.getPowerLevels().use { it.canUserInvite(userId.value) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserKick(userId: UserId): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserKick(userId.value)
|
||||
innerRoom.getPowerLevels().use { it.canUserKick(userId.value) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserBan(userId: UserId): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserBan(userId.value)
|
||||
innerRoom.getPowerLevels().use { it.canUserBan(userId.value) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserRedactOwn(userId: UserId): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserRedactOwn(userId.value)
|
||||
innerRoom.getPowerLevels().use { it.canUserRedactOwn(userId.value) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserRedactOther(userId: UserId): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserRedactOther(userId.value)
|
||||
innerRoom.getPowerLevels().use { it.canUserRedactOther(userId.value) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserSendState(userId: UserId, type: StateEventType): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserSendState(userId.value, type.map())
|
||||
innerRoom.getPowerLevels().use { it.canUserSendState(userId.value, type.map()) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserSendMessage(userId: UserId, type: MessageEventType): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserSendMessage(userId.value, type.map())
|
||||
innerRoom.getPowerLevels().use { it.canUserSendMessage(userId.value, type.map()) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserTriggerRoomNotification(userId: UserId): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserTriggerRoomNotification(userId.value)
|
||||
innerRoom.getPowerLevels().use { it.canUserTriggerRoomNotification(userId.value) }
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun canUserPinUnpin(userId: UserId): Result<Boolean> = withContext(roomDispatcher) {
|
||||
runCatchingExceptions {
|
||||
innerRoom.canUserPinUnpin(userId.value)
|
||||
innerRoom.getPowerLevels().use { it.canUserPinUnpin(userId.value) }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
* Copyright 2024 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.matrix.impl.room.powerlevels
|
||||
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import org.matrix.rustcomponents.sdk.RoomPowerLevels as RustRoomPowerLevels
|
||||
|
||||
object RoomPowerLevelsMapper {
|
||||
fun map(roomPowerLevels: RustRoomPowerLevels): RoomPowerLevels {
|
||||
return RoomPowerLevels(
|
||||
ban = roomPowerLevels.ban,
|
||||
invite = roomPowerLevels.invite,
|
||||
kick = roomPowerLevels.kick,
|
||||
sendEvents = roomPowerLevels.eventsDefault,
|
||||
redactEvents = roomPowerLevels.redact,
|
||||
roomName = roomPowerLevels.roomName,
|
||||
roomAvatar = roomPowerLevels.roomAvatar,
|
||||
roomTopic = roomPowerLevels.roomTopic
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright 2024 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.matrix.impl.room.powerlevels
|
||||
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import org.matrix.rustcomponents.sdk.RoomPowerLevelsValues as RustRoomPowerLevelsValues
|
||||
|
||||
object RoomPowerLevelsValuesMapper {
|
||||
fun map(values: RustRoomPowerLevelsValues): RoomPowerLevelsValues {
|
||||
return RoomPowerLevelsValues(
|
||||
ban = values.ban,
|
||||
invite = values.invite,
|
||||
kick = values.kick,
|
||||
sendEvents = values.eventsDefault,
|
||||
redactEvents = values.redact,
|
||||
roomName = values.roomName,
|
||||
roomAvatar = values.roomAvatar,
|
||||
roomTopic = values.roomTopic,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
package io.element.android.libraries.matrix.impl.fixtures.factories
|
||||
|
||||
import org.matrix.rustcomponents.sdk.RoomPowerLevels
|
||||
import org.matrix.rustcomponents.sdk.RoomPowerLevelsValues
|
||||
|
||||
internal fun aRustRoomPowerLevels(
|
||||
internal fun aRustRoomPowerLevelsValues(
|
||||
ban: Long,
|
||||
invite: Long,
|
||||
kick: Long,
|
||||
|
|
@ -20,7 +20,7 @@ internal fun aRustRoomPowerLevels(
|
|||
roomName: Long,
|
||||
roomAvatar: Long,
|
||||
roomTopic: Long,
|
||||
) = RoomPowerLevels(
|
||||
) = RoomPowerLevelsValues(
|
||||
ban = ban,
|
||||
invite = invite,
|
||||
kick = kick,
|
||||
|
|
|
|||
|
|
@ -8,16 +8,16 @@
|
|||
package io.element.android.libraries.matrix.impl.room.powerlevels
|
||||
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustRoomPowerLevelsValues
|
||||
import org.junit.Test
|
||||
|
||||
class RoomPowerLevelsMapperTest {
|
||||
class RoomPowerLevelsValuesMapperTest {
|
||||
@Test
|
||||
fun `test that mapping of RoomPowerLevels is correct`() {
|
||||
fun `test that mapping of RoomPowerLevelsValues is correct`() {
|
||||
assertThat(
|
||||
RoomPowerLevelsMapper.map(
|
||||
aRustRoomPowerLevels(
|
||||
RoomPowerLevelsValuesMapper.map(
|
||||
aRustRoomPowerLevelsValues(
|
||||
ban = 1,
|
||||
invite = 2,
|
||||
kick = 3,
|
||||
|
|
@ -31,7 +31,7 @@ class RoomPowerLevelsMapperTest {
|
|||
)
|
||||
)
|
||||
).isEqualTo(
|
||||
RoomPowerLevels(
|
||||
RoomPowerLevelsValues(
|
||||
ban = 1,
|
||||
invite = 2,
|
||||
kick = 3,
|
||||
|
|
@ -20,7 +20,7 @@ import io.element.android.libraries.matrix.api.room.RoomMember
|
|||
import io.element.android.libraries.matrix.api.room.RoomMembersState
|
||||
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.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.api.room.tombstone.PredecessorRoom
|
||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||
import io.element.android.libraries.matrix.api.timeline.ReceiptType
|
||||
|
|
@ -57,7 +57,7 @@ class FakeBaseRoom(
|
|||
private val canUserPinUnpinResult: (UserId) -> Result<Boolean> = { lambdaError() },
|
||||
private val setIsFavoriteResult: (Boolean) -> Result<Unit> = { lambdaError() },
|
||||
private val markAsReadResult: (ReceiptType) -> Result<Unit> = { Result.success(Unit) },
|
||||
private val powerLevelsResult: () -> Result<RoomPowerLevels> = { lambdaError() },
|
||||
private val powerLevelsResult: () -> Result<RoomPowerLevelsValues> = { lambdaError() },
|
||||
private val leaveRoomLambda: () -> Result<Unit> = { lambdaError() },
|
||||
private val updateMembersResult: () -> Unit = { lambdaError() },
|
||||
private val getMembersResult: (Int) -> Result<List<RoomMember>> = { lambdaError() },
|
||||
|
|
@ -93,7 +93,7 @@ class FakeBaseRoom(
|
|||
subscribeToSyncLambda()
|
||||
}
|
||||
|
||||
override suspend fun powerLevels(): Result<RoomPowerLevels> {
|
||||
override suspend fun powerLevels(): Result<RoomPowerLevelsValues> {
|
||||
return powerLevelsResult()
|
||||
}
|
||||
|
||||
|
|
@ -225,7 +225,7 @@ class FakeBaseRoom(
|
|||
override fun predecessorRoom(): PredecessorRoom? = predecessorRoomResult()
|
||||
}
|
||||
|
||||
fun defaultRoomPowerLevels() = RoomPowerLevels(
|
||||
fun defaultRoomPowerLevels() = RoomPowerLevelsValues(
|
||||
ban = 50,
|
||||
invite = 0,
|
||||
kick = 50,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import io.element.android.libraries.matrix.api.room.RoomNotificationSettingsStat
|
|||
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
|
||||
import io.element.android.libraries.matrix.api.room.join.JoinRule
|
||||
import io.element.android.libraries.matrix.api.room.knock.KnockRequest
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange
|
||||
import io.element.android.libraries.matrix.api.roomdirectory.RoomVisibility
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
|
|
@ -66,8 +66,8 @@ class FakeJoinedRoom(
|
|||
private val updateAvatarResult: (String, ByteArray) -> Result<Unit> = { _, _ -> lambdaError() },
|
||||
private val removeAvatarResult: () -> Result<Unit> = { lambdaError() },
|
||||
private val updateUserRoleResult: (List<UserRoleChange>) -> Result<Unit> = { lambdaError() },
|
||||
private val updatePowerLevelsResult: (RoomPowerLevels) -> Result<Unit> = { lambdaError() },
|
||||
private val resetPowerLevelsResult: () -> Result<RoomPowerLevels> = { lambdaError() },
|
||||
private val updatePowerLevelsResult: (RoomPowerLevelsValues) -> Result<Unit> = { lambdaError() },
|
||||
private val resetPowerLevelsResult: () -> Result<Unit> = { lambdaError() },
|
||||
private val reportContentResult: (EventId, String, UserId?) -> Result<Unit> = { _, _, _ -> lambdaError() },
|
||||
private val kickUserResult: (UserId, String?) -> Result<Unit> = { _, _ -> lambdaError() },
|
||||
private val banUserResult: (UserId, String?) -> Result<Unit> = { _, _ -> lambdaError() },
|
||||
|
|
@ -162,11 +162,11 @@ class FakeJoinedRoom(
|
|||
updateUserRoleResult(changes)
|
||||
}
|
||||
|
||||
override suspend fun updatePowerLevels(roomPowerLevels: RoomPowerLevels): Result<Unit> = simulateLongTask {
|
||||
updatePowerLevelsResult(roomPowerLevels)
|
||||
override suspend fun updatePowerLevels(roomPowerLevelsValues: RoomPowerLevelsValues): Result<Unit> = simulateLongTask {
|
||||
updatePowerLevelsResult(roomPowerLevelsValues)
|
||||
}
|
||||
|
||||
override suspend fun resetPowerLevels(): Result<RoomPowerLevels> = simulateLongTask {
|
||||
override suspend fun resetPowerLevels(): Result<Unit> = simulateLongTask {
|
||||
resetPowerLevelsResult()
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue