From ab0e4429d69e009709977dec1a5bd94b877e14eb Mon Sep 17 00:00:00 2001 From: ganfra Date: Mon, 3 Nov 2025 16:36:58 +0100 Subject: [PATCH 01/16] change(roles and permissions): rename package changeroommemberrole to rolesandpermissions --- features/home/impl/build.gradle.kts | 2 +- .../io/element/android/features/home/impl/HomeFlowNode.kt | 4 ++-- .../api/build.gradle.kts | 2 +- .../api/ChangeRoomMemberRolesEntryPoint.kt | 2 +- .../impl/build.gradle.kts | 4 ++-- .../rolesandpermissions}/impl/RoomMemberListDataSource.kt | 2 +- .../rolesandpermissions/impl/roles}/ChangeRolesEvent.kt | 4 ++-- .../rolesandpermissions/impl/roles}/ChangeRolesNode.kt | 4 ++-- .../rolesandpermissions/impl/roles}/ChangeRolesPresenter.kt | 3 ++- .../rolesandpermissions/impl/roles}/ChangeRolesState.kt | 4 ++-- .../impl/roles}/ChangeRolesStateProvider.kt | 4 ++-- .../rolesandpermissions/impl/roles}/ChangeRolesView.kt | 3 ++- .../impl/roles}/ChangeRoomMemberRolesRootNode.kt | 6 +++--- .../impl/roles}/DefaultChangeRoomMemberRolesEntyPoint.kt | 6 +++--- .../impl/src/main/res/values-be/translations.xml | 0 .../impl/src/main/res/values-bg/translations.xml | 0 .../impl/src/main/res/values-cs/translations.xml | 0 .../impl/src/main/res/values-cy/translations.xml | 0 .../impl/src/main/res/values-da/translations.xml | 0 .../impl/src/main/res/values-de/translations.xml | 0 .../impl/src/main/res/values-el/translations.xml | 0 .../impl/src/main/res/values-es/translations.xml | 0 .../impl/src/main/res/values-et/translations.xml | 0 .../impl/src/main/res/values-eu/translations.xml | 0 .../impl/src/main/res/values-fa/translations.xml | 0 .../impl/src/main/res/values-fi/translations.xml | 0 .../impl/src/main/res/values-fr/translations.xml | 0 .../impl/src/main/res/values-hu/translations.xml | 0 .../impl/src/main/res/values-in/translations.xml | 0 .../impl/src/main/res/values-it/translations.xml | 0 .../impl/src/main/res/values-ka/translations.xml | 0 .../impl/src/main/res/values-ko/translations.xml | 0 .../impl/src/main/res/values-lt/translations.xml | 0 .../impl/src/main/res/values-nb/translations.xml | 0 .../impl/src/main/res/values-nl/translations.xml | 0 .../impl/src/main/res/values-pl/translations.xml | 0 .../impl/src/main/res/values-pt-rBR/translations.xml | 0 .../impl/src/main/res/values-pt/translations.xml | 0 .../impl/src/main/res/values-ro/translations.xml | 0 .../impl/src/main/res/values-ru/translations.xml | 0 .../impl/src/main/res/values-sk/translations.xml | 0 .../impl/src/main/res/values-sv/translations.xml | 0 .../impl/src/main/res/values-tr/translations.xml | 0 .../impl/src/main/res/values-uk/translations.xml | 0 .../impl/src/main/res/values-ur/translations.xml | 0 .../impl/src/main/res/values-uz/translations.xml | 0 .../impl/src/main/res/values-zh-rTW/translations.xml | 0 .../impl/src/main/res/values-zh/translations.xml | 0 .../impl/src/main/res/values/localazy.xml | 0 .../rolesandpermissions/impl/roles}/ChangeRolesNodeTest.kt | 4 ++-- .../impl/roles}/ChangeRolesPresenterTest.kt | 2 +- .../rolesandpermissions/impl/roles}/ChangeRolesViewTest.kt | 2 +- .../roles}/DefaultChangeRoomMemberRolesEntyPointTest.kt | 4 ++-- .../rolesandpermissions/impl/roles}/MembersByRoleTest.kt | 4 ++-- .../test/build.gradle.kts | 4 ++-- .../test/FakeChangeRoomMemberRolesEntryPoint.kt | 6 +++--- features/roomdetails/impl/build.gradle.kts | 4 ++-- .../features/roomdetails/impl/RoomDetailsFlowNode.kt | 4 ++-- .../impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt | 4 ++-- .../roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt | 2 +- 60 files changed, 46 insertions(+), 44 deletions(-) rename features/{changeroommemberroles => rolesandpermissions}/api/build.gradle.kts (87%) rename features/{changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroles => rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions}/api/ChangeRoomMemberRolesEntryPoint.kt (94%) rename features/{changeroommemberroles => rolesandpermissions}/impl/build.gradle.kts (90%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions}/impl/RoomMemberListDataSource.kt (95%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesEvent.kt (85%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesNode.kt (93%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesPresenter.kt (98%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesState.kt (95%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesStateProvider.kt (98%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesView.kt (99%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRoomMemberRolesRootNode.kt (91%) rename features/{changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/DefaultChangeRoomMemberRolesEntyPoint.kt (81%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-be/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-bg/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-cs/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-cy/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-da/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-de/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-el/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-es/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-et/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-eu/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-fa/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-fi/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-fr/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-hu/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-in/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-it/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-ka/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-ko/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-lt/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-nb/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-nl/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-pl/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-pt-rBR/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-pt/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-ro/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-ru/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-sk/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-sv/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-tr/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-uk/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-ur/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-uz/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-zh-rTW/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values-zh/translations.xml (100%) rename features/{changeroommemberroles => rolesandpermissions}/impl/src/main/res/values/localazy.xml (100%) rename features/{changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesNodeTest.kt (83%) rename features/{changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesPresenterTest.kt (99%) rename features/{changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/ChangeRolesViewTest.kt (99%) rename features/{changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/DefaultChangeRoomMemberRolesEntyPointTest.kt (91%) rename features/{changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles}/MembersByRoleTest.kt (97%) rename features/{changeroommemberroles => rolesandpermissions}/test/build.gradle.kts (75%) rename features/{changeroommemberroles => rolesandpermissions}/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt (73%) diff --git a/features/home/impl/build.gradle.kts b/features/home/impl/build.gradle.kts index 9a29532ef0..1ac8dcec72 100644 --- a/features/home/impl/build.gradle.kts +++ b/features/home/impl/build.gradle.kts @@ -56,7 +56,7 @@ dependencies { implementation(libs.haze) implementation(libs.haze.materials) implementation(projects.features.reportroom.api) - implementation(projects.features.changeroommemberroles.api) + implementation(projects.features.rolesandpermissions.api) implementation(projects.libraries.previewutils) api(projects.features.home.api) diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt index 5380c51295..91ef53d9de 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt @@ -28,8 +28,8 @@ import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import im.vector.app.features.analytics.plan.MobileScreen import io.element.android.annotations.ContributesNode -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.features.home.api.HomeEntryPoint import io.element.android.features.home.impl.components.RoomListMenuAction import io.element.android.features.home.impl.model.RoomListRoomSummary diff --git a/features/changeroommemberroles/api/build.gradle.kts b/features/rolesandpermissions/api/build.gradle.kts similarity index 87% rename from features/changeroommemberroles/api/build.gradle.kts rename to features/rolesandpermissions/api/build.gradle.kts index 655bd5683e..0ace6032d9 100644 --- a/features/changeroommemberroles/api/build.gradle.kts +++ b/features/rolesandpermissions/api/build.gradle.kts @@ -11,7 +11,7 @@ plugins { } android { - namespace = "io.element.android.features.changeroommemberroles.api" + namespace = "io.element.android.features.rolesandpermissions.api" } dependencies { diff --git a/features/changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroles/api/ChangeRoomMemberRolesEntryPoint.kt b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt similarity index 94% rename from features/changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroles/api/ChangeRoomMemberRolesEntryPoint.kt rename to features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt index 7905cdc0ae..0d93632699 100644 --- a/features/changeroommemberroles/api/src/main/kotlin/io/element/android/features/changeroommemberroles/api/ChangeRoomMemberRolesEntryPoint.kt +++ b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.api +package io.element.android.features.rolesandpermissions.api import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node diff --git a/features/changeroommemberroles/impl/build.gradle.kts b/features/rolesandpermissions/impl/build.gradle.kts similarity index 90% rename from features/changeroommemberroles/impl/build.gradle.kts rename to features/rolesandpermissions/impl/build.gradle.kts index be2bf17979..2cd0960c50 100644 --- a/features/changeroommemberroles/impl/build.gradle.kts +++ b/features/rolesandpermissions/impl/build.gradle.kts @@ -14,7 +14,7 @@ plugins { } android { - namespace = "io.element.android.features.changeroommemberroles.impl" + namespace = "io.element.android.features.rolesandpermissions.impl" testOptions { unitTests { @@ -26,7 +26,7 @@ android { setupDependencyInjection() dependencies { - api(projects.features.changeroommemberroles.api) + api(projects.features.rolesandpermissions.api) implementation(projects.appnav) implementation(projects.libraries.architecture) implementation(projects.libraries.core) diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/RoomMemberListDataSource.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RoomMemberListDataSource.kt similarity index 95% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/RoomMemberListDataSource.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RoomMemberListDataSource.kt index a27833122a..523b320ccd 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/RoomMemberListDataSource.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RoomMemberListDataSource.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl import dev.zacsweers.metro.Inject import io.element.android.libraries.core.bool.orFalse diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesEvent.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesEvent.kt similarity index 85% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesEvent.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesEvent.kt index 56e1c50bcc..df924bc575 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesEvent.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesEvent.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024 New Vector Ltd. + * Copyright 2025 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.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import io.element.android.libraries.matrix.api.user.MatrixUser diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNode.kt similarity index 93% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNode.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNode.kt index 9edd20b549..915b129c84 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNode.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -17,7 +17,7 @@ import com.bumble.appyx.core.plugin.Plugin import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.architecture.appyx.launchMolecule import io.element.android.libraries.architecture.inputs diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt similarity index 98% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenter.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt index b6d865a66a..07a0c5a873 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -22,6 +22,7 @@ import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedInject import im.vector.app.features.analytics.plan.RoomModeration +import io.element.android.features.rolesandpermissions.impl.RoomMemberListDataSource import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.coroutine.CoroutineDispatchers diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesState.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesState.kt similarity index 95% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesState.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesState.kt index e0b3e68a9e..17d7b0c3dd 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesState.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesState.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024 New Vector Ltd. + * Copyright 2025 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.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.designsystem.theme.components.SearchBarResultState diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesStateProvider.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesStateProvider.kt similarity index 98% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesStateProvider.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesStateProvider.kt index b54347f73f..d054f459aa 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesStateProvider.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesStateProvider.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024 New Vector Ltd. + * Copyright 2025 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.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.changerole import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.architecture.AsyncAction diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesView.kt similarity index 99% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesView.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesView.kt index f9ebd75ca2..16c6965f18 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesView.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import androidx.activity.compose.BackHandler import androidx.compose.animation.AnimatedVisibility @@ -39,6 +39,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme +import io.element.android.features.rolesandpermissions.impl.R import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.designsystem.components.async.AsyncActionView import io.element.android.libraries.designsystem.components.async.AsyncIndicator diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRoomMemberRolesRootNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt similarity index 91% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRoomMemberRolesRootNode.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt index a7556ef8ca..33fbd197ae 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRoomMemberRolesRootNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import android.os.Parcelable import androidx.compose.runtime.Composable @@ -20,8 +20,8 @@ import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode import io.element.android.appnav.di.RoomGraphFactory -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.inputs diff --git a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPoint.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/DefaultChangeRoomMemberRolesEntyPoint.kt similarity index 81% rename from features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPoint.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/DefaultChangeRoomMemberRolesEntyPoint.kt index e76333cda7..62ec729b14 100644 --- a/features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPoint.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/DefaultChangeRoomMemberRolesEntyPoint.kt @@ -5,13 +5,13 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import dev.zacsweers.metro.ContributesBinding -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.architecture.createNode import io.element.android.libraries.di.SessionScope import io.element.android.libraries.matrix.api.room.JoinedRoom diff --git a/features/changeroommemberroles/impl/src/main/res/values-be/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-be/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-be/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-be/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-bg/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-bg/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-bg/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-bg/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-cs/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-cs/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-cs/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-cs/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-cy/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-cy/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-cy/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-cy/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-da/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-da/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-da/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-da/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-de/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-de/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-de/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-de/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-el/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-el/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-el/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-el/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-es/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-es/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-es/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-es/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-et/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-et/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-et/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-et/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-eu/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-eu/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-eu/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-eu/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-fa/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-fa/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-fa/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-fa/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-fi/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-fi/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-fi/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-fi/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-fr/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-fr/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-fr/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-fr/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-hu/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-hu/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-hu/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-hu/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-in/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-in/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-in/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-in/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-it/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-it/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-it/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-it/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-ka/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-ka/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-ka/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-ka/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-ko/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-ko/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-ko/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-ko/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-lt/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-lt/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-lt/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-lt/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-nb/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-nb/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-nb/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-nb/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-nl/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-nl/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-nl/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-nl/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-pl/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-pl/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-pl/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-pl/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-pt-rBR/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-pt-rBR/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-pt-rBR/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-pt-rBR/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-pt/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-pt/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-pt/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-pt/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-ro/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-ro/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-ro/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-ro/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-ru/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-ru/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-ru/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-ru/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-sk/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-sk/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-sk/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-sk/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-sv/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-sv/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-sv/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-sv/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-tr/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-tr/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-tr/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-tr/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-uk/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-uk/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-uk/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-uk/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-ur/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-ur/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-ur/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-ur/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-uz/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-uz/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-uz/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-uz/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-zh-rTW/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-zh-rTW/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-zh-rTW/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-zh-rTW/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values-zh/translations.xml b/features/rolesandpermissions/impl/src/main/res/values-zh/translations.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values-zh/translations.xml rename to features/rolesandpermissions/impl/src/main/res/values-zh/translations.xml diff --git a/features/changeroommemberroles/impl/src/main/res/values/localazy.xml b/features/rolesandpermissions/impl/src/main/res/values/localazy.xml similarity index 100% rename from features/changeroommemberroles/impl/src/main/res/values/localazy.xml rename to features/rolesandpermissions/impl/src/main/res/values/localazy.xml diff --git a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNodeTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNodeTest.kt similarity index 83% rename from features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNodeTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNodeTest.kt index 3da57d3380..e8a470b0ef 100644 --- a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesNodeTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNodeTest.kt @@ -5,10 +5,10 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import com.google.common.truth.Truth.assertThat -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.matrix.api.room.RoomMember import org.junit.Test diff --git a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenterTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenterTest.kt similarity index 99% rename from features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenterTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenterTest.kt index a5e4cfaccb..6bcad2c4cc 100644 --- a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenterTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenterTest.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import app.cash.molecule.RecompositionMode import app.cash.molecule.moleculeFlow diff --git a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesViewTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesViewTest.kt similarity index 99% rename from features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesViewTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesViewTest.kt index 19d9cadfa8..dc26741587 100644 --- a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesViewTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesViewTest.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import androidx.activity.ComponentActivity import androidx.compose.ui.test.junit4.AndroidComposeTestRule diff --git a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPointTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/DefaultChangeRoomMemberRolesEntyPointTest.kt similarity index 91% rename from features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPointTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/DefaultChangeRoomMemberRolesEntyPointTest.kt index 84e53c0cb6..3612479418 100644 --- a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/DefaultChangeRoomMemberRolesEntyPointTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/DefaultChangeRoomMemberRolesEntyPointTest.kt @@ -5,12 +5,12 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import androidx.test.ext.junit.runners.AndroidJUnit4 import com.bumble.appyx.core.modality.BuildContext import com.google.common.truth.Truth.assertThat -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.matrix.test.room.FakeJoinedRoom import io.element.android.tests.testutils.node.TestParentNode import kotlinx.coroutines.test.runTest diff --git a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/MembersByRoleTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/MembersByRoleTest.kt similarity index 97% rename from features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/MembersByRoleTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/MembersByRoleTest.kt index a2e134f807..101a0e2869 100644 --- a/features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/MembersByRoleTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/MembersByRoleTest.kt @@ -1,11 +1,11 @@ /* - * Copyright 2024 New Vector Ltd. + * Copyright 2025 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.features.changeroommemberroles.impl +package io.element.android.features.rolesandpermissions.impl.roles import com.google.common.truth.Truth.assertThat import io.element.android.libraries.matrix.api.room.RoomMember diff --git a/features/changeroommemberroles/test/build.gradle.kts b/features/rolesandpermissions/test/build.gradle.kts similarity index 75% rename from features/changeroommemberroles/test/build.gradle.kts rename to features/rolesandpermissions/test/build.gradle.kts index 4d85d83c90..a5385b29d7 100644 --- a/features/changeroommemberroles/test/build.gradle.kts +++ b/features/rolesandpermissions/test/build.gradle.kts @@ -10,11 +10,11 @@ plugins { } android { - namespace = "io.element.android.features.changeroommemberroles.test" + namespace = "io.element.android.features.rolesandpermissions.test" } dependencies { - implementation(projects.features.changeroommemberroles.api) + implementation(projects.features.rolesandpermissions.api) implementation(projects.libraries.architecture) implementation(projects.libraries.matrix.api) implementation(projects.tests.testutils) diff --git a/features/changeroommemberroles/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt similarity index 73% rename from features/changeroommemberroles/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt rename to features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt index 16b404ab5e..3e3e5b1a43 100644 --- a/features/changeroommemberroles/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt +++ b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt @@ -5,12 +5,12 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.changeroommemberroles.test +package io.element.android.features.rolesandpermissions.test import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.tests.testutils.lambda.lambdaError diff --git a/features/roomdetails/impl/build.gradle.kts b/features/roomdetails/impl/build.gradle.kts index 896fc8dbdc..881510ff28 100644 --- a/features/roomdetails/impl/build.gradle.kts +++ b/features/roomdetails/impl/build.gradle.kts @@ -56,7 +56,7 @@ dependencies { implementation(projects.features.verifysession.api) implementation(projects.features.reportroom.api) implementation(projects.features.roommembermoderation.api) - implementation(projects.features.changeroommemberroles.api) + implementation(projects.features.rolesandpermissions.api) implementation(projects.features.invitepeople.api) testCommonDependencies(libs, true) @@ -69,7 +69,7 @@ dependencies { testImplementation(projects.libraries.usersearch.test) testImplementation(projects.libraries.featureflag.test) testImplementation(projects.features.call.test) - testImplementation(projects.features.changeroommemberroles.test) + testImplementation(projects.features.rolesandpermissions.test) testImplementation(projects.features.knockrequests.test) testImplementation(projects.features.messages.test) testImplementation(projects.features.poll.test) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt index d31adaae8d..06e4818284 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt @@ -26,8 +26,8 @@ import io.element.android.annotations.ContributesNode import io.element.android.appconfig.LearnMoreConfig import io.element.android.features.call.api.CallType import io.element.android.features.call.api.ElementCallEntryPoint -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.features.knockrequests.api.list.KnockRequestsListEntryPoint import io.element.android.features.messages.api.MessagesEntryPoint import io.element.android.features.poll.api.history.PollHistoryEntryPoint diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt index b2b7d46780..80ef19a903 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt @@ -20,8 +20,8 @@ import com.bumble.appyx.navmodel.backstack.operation.push import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.changeroommemberroles.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.features.roomdetails.impl.rolesandpermissions.permissions.ChangeRoomPermissionsNode import io.element.android.features.roomdetails.impl.rolesandpermissions.permissions.ChangeRoomPermissionsSection import io.element.android.libraries.architecture.BackstackView diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt index ebe92332e8..ad939734df 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt @@ -12,7 +12,7 @@ import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.testing.junit4.util.MainDispatcherRule import com.google.common.truth.Truth.assertThat import io.element.android.features.call.test.FakeElementCallEntryPoint -import io.element.android.features.changeroommemberroles.test.FakeChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.test.FakeChangeRoomMemberRolesEntryPoint import io.element.android.features.knockrequests.test.FakeKnockRequestsListEntryPoint import io.element.android.features.messages.test.FakeMessagesEntryPoint import io.element.android.features.poll.test.history.FakePollHistoryEntryPoint From 17dd75fe24a0ac715de8db76ddb52a0294d08040 Mon Sep 17 00:00:00 2001 From: ganfra Date: Mon, 3 Nov 2025 18:29:51 +0100 Subject: [PATCH 02/16] change(roles and permissions): import codefrom roomdetails module --- .../features/home/impl/HomeFlowNode.kt | 5 +++-- .../api/RolesAndPermissionsEntryPoint.kt | 12 ++++++++++ .../DefaultRolesAndPermissionsEntryPoint.kt | 22 +++++++++++++++++++ .../impl}/RolesAndPermissionsFlowNode.kt | 9 ++++---- .../impl/analytics/AnalyticUtils.kt | 2 +- .../permissions/ChangeRoomPermissionsEvent.kt | 2 +- .../permissions/ChangeRoomPermissionsNode.kt | 2 +- .../ChangeRoomPermissionsPresenter.kt | 4 ++-- .../permissions/ChangeRoomPermissionsState.kt | 2 +- .../ChangeRoomPermissionsStateProvider.kt | 2 +- .../permissions/ChangeRoomPermissionsView.kt | 2 +- .../impl/roles/ChangeRolesStateProvider.kt | 2 +- .../roles/ChangeRoomMemberRolesRootNode.kt | 1 + .../impl/root}/RolesAndPermissionsEvents.kt | 2 +- .../impl/root}/RolesAndPermissionsNode.kt | 2 +- .../root}/RolesAndPermissionsPresenter.kt | 2 +- .../impl/root}/RolesAndPermissionsState.kt | 2 +- .../root}/RolesAndPermissionsStateProvider.kt | 2 +- .../impl/root}/RolesAndPermissionsView.kt | 2 +- .../FakeChangeRoomMemberRolesEntryPoint.kt | 4 ++-- .../roomdetails/impl/RoomDetailsFlowNode.kt | 9 ++++---- 21 files changed, 65 insertions(+), 27 deletions(-) create mode 100644 features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/RolesAndPermissionsEntryPoint.kt create mode 100644 features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/DefaultRolesAndPermissionsEntryPoint.kt rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl}/RolesAndPermissionsFlowNode.kt (93%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions}/impl/analytics/AnalyticUtils.kt (97%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl}/permissions/ChangeRoomPermissionsEvent.kt (87%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl}/permissions/ChangeRoomPermissionsNode.kt (95%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl}/permissions/ChangeRoomPermissionsPresenter.kt (97%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl}/permissions/ChangeRoomPermissionsState.kt (91%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl}/permissions/ChangeRoomPermissionsStateProvider.kt (97%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl}/permissions/ChangeRoomPermissionsView.kt (99%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionsEvents.kt (88%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionsNode.kt (97%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionsPresenter.kt (98%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionsState.kt (88%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionsStateProvider.kt (97%) rename features/{roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionsView.kt (99%) diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt index 91ef53d9de..cf1d9e829d 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt @@ -28,8 +28,6 @@ import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import im.vector.app.features.analytics.plan.MobileScreen import io.element.android.annotations.ContributesNode -import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.features.home.api.HomeEntryPoint import io.element.android.features.home.impl.components.RoomListMenuAction import io.element.android.features.home.impl.model.RoomListRoomSummary @@ -40,6 +38,9 @@ import io.element.android.features.invite.api.declineandblock.DeclineInviteAndBl import io.element.android.features.leaveroom.api.LeaveRoomRenderer import io.element.android.features.logout.api.direct.DirectLogoutView import io.element.android.features.reportroom.api.ReportRoomEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint import io.element.android.libraries.architecture.BackstackView import io.element.android.libraries.architecture.BaseFlowNode import io.element.android.libraries.architecture.appyx.launchMolecule diff --git a/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/RolesAndPermissionsEntryPoint.kt b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/RolesAndPermissionsEntryPoint.kt new file mode 100644 index 0000000000..4ed1fa5c90 --- /dev/null +++ b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/RolesAndPermissionsEntryPoint.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2025 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.features.rolesandpermissions.api + +import io.element.android.libraries.architecture.SimpleFeatureEntryPoint + +fun interface RolesAndPermissionsEntryPoint : SimpleFeatureEntryPoint diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/DefaultRolesAndPermissionsEntryPoint.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/DefaultRolesAndPermissionsEntryPoint.kt new file mode 100644 index 0000000000..a889b8266c --- /dev/null +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/DefaultRolesAndPermissionsEntryPoint.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2025 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.features.rolesandpermissions.impl + +import com.bumble.appyx.core.modality.BuildContext +import com.bumble.appyx.core.node.Node +import dev.zacsweers.metro.ContributesBinding +import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint +import io.element.android.libraries.architecture.createNode +import io.element.android.libraries.di.RoomScope + +@ContributesBinding(RoomScope::class) +class DefaultRolesAndPermissionsEntryPoint : RolesAndPermissionsEntryPoint { + override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + return parentNode.createNode(buildContext) + } +} diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt similarity index 93% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt index 80ef19a903..36e4d233ca 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsFlowNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl import android.os.Parcelable import androidx.compose.runtime.Composable @@ -22,8 +22,9 @@ import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType -import io.element.android.features.roomdetails.impl.rolesandpermissions.permissions.ChangeRoomPermissionsNode -import io.element.android.features.roomdetails.impl.rolesandpermissions.permissions.ChangeRoomPermissionsSection +import io.element.android.features.rolesandpermissions.impl.permissions.ChangeRoomPermissionsNode +import io.element.android.features.rolesandpermissions.impl.permissions.ChangeRoomPermissionsSection +import io.element.android.features.rolesandpermissions.impl.root.RolesAndPermissionsNode import io.element.android.libraries.architecture.BackstackView import io.element.android.libraries.architecture.BaseFlowNode import io.element.android.libraries.architecture.createNode @@ -37,8 +38,8 @@ import kotlinx.parcelize.Parcelize class RolesAndPermissionsFlowNode( @Assisted buildContext: BuildContext, @Assisted plugins: List, - private val changeRoomMemberRolesEntryPoint: ChangeRoomMemberRolesEntryPoint, private val joinedRoom: JoinedRoom, + private val changeRoomMemberRolesEntryPoint: ChangeRoomMemberRolesEntryPoint, ) : BaseFlowNode( backstack = BackStack( initialElement = NavTarget.AdminSettings, diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/analytics/AnalyticUtils.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/analytics/AnalyticUtils.kt similarity index 97% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/analytics/AnalyticUtils.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/analytics/AnalyticUtils.kt index 09d57af034..a609b79087 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/analytics/AnalyticUtils.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/analytics/AnalyticUtils.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.analytics +package io.element.android.features.rolesandpermissions.impl.analytics import im.vector.app.features.analytics.plan.RoomModeration import io.element.android.libraries.matrix.api.room.RoomMember diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsEvent.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsEvent.kt similarity index 87% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsEvent.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsEvent.kt index a4c49c7ac3..f17960c790 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsEvent.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsEvent.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import io.element.android.libraries.matrix.api.room.RoomMember diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt similarity index 95% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsNode.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt index cebcc56e7f..c0c7d016dd 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import android.os.Parcelable import androidx.compose.runtime.Composable diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt similarity index 97% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsPresenter.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt index ec90df1d5e..ce59aa1907 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -18,7 +18,7 @@ import androidx.compose.runtime.setValue import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedInject -import io.element.android.features.roomdetails.impl.analytics.trackPermissionChangeAnalytics +import io.element.android.features.rolesandpermissions.impl.analytics.trackPermissionChangeAnalytics import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.matrix.api.room.JoinedRoom diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsState.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt similarity index 91% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsState.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt index 5e7b77560a..da106c888b 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsState.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStateProvider.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsStateProvider.kt similarity index 97% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStateProvider.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsStateProvider.kt index 07d3455a90..484caa6dbe 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStateProvider.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsStateProvider.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.architecture.AsyncAction diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt similarity index 99% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsView.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt index 6acf4935dc..52c4e254dd 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import androidx.activity.compose.BackHandler import androidx.compose.foundation.layout.fillMaxSize diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesStateProvider.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesStateProvider.kt index d054f459aa..5b0cadd024 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesStateProvider.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesStateProvider.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.rolesandpermissions.impl.changerole +package io.element.android.features.rolesandpermissions.impl.roles import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.architecture.AsyncAction diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt index 33fbd197ae..0f588667c6 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt @@ -21,6 +21,7 @@ import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode import io.element.android.appnav.di.RoomGraphFactory import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.architecture.createNode diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsEvents.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsEvents.kt similarity index 88% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsEvents.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsEvents.kt index 8b98f78d97..3864f7997c 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsEvents.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsEvents.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import io.element.android.libraries.matrix.api.room.RoomMember diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsNode.kt similarity index 97% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsNode.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsNode.kt index 29394398d3..f5c7b2e7c2 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsNode.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import androidx.compose.runtime.Composable import androidx.compose.runtime.Stable diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsPresenter.kt similarity index 98% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsPresenter.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsPresenter.kt index 2ad4c84028..4f8bf2d201 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsPresenter.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsState.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsState.kt similarity index 88% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsState.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsState.kt index 24f645a309..8be6fcaf31 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsState.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsState.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import io.element.android.libraries.architecture.AsyncAction diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsStateProvider.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsStateProvider.kt similarity index 97% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsStateProvider.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsStateProvider.kt index 211a16d7d1..d134c6e222 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsStateProvider.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsStateProvider.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.architecture.AsyncAction diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt similarity index 99% rename from features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsView.kt rename to features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt index b581554a92..11341a75ef 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding diff --git a/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt index 3e3e5b1a43..a2f9ac0253 100644 --- a/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt +++ b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt @@ -9,12 +9,12 @@ package io.element.android.features.rolesandpermissions.test import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node -import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.tests.testutils.lambda.lambdaError -class FakeChangeRoomMemberRolesEntryPoint : ChangeRoomMemberRolesEntryPoint { +class FakeChangeRoomMemberRolesEntryPoint : RolesAndPermissionsEntryPoint { override fun createNode( parentNode: Node, buildContext: BuildContext, diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt index 06e4818284..20e783fb6b 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt @@ -26,19 +26,19 @@ import io.element.android.annotations.ContributesNode import io.element.android.appconfig.LearnMoreConfig import io.element.android.features.call.api.CallType import io.element.android.features.call.api.ElementCallEntryPoint -import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.features.knockrequests.api.list.KnockRequestsListEntryPoint import io.element.android.features.messages.api.MessagesEntryPoint import io.element.android.features.poll.api.history.PollHistoryEntryPoint import io.element.android.features.reportroom.api.ReportRoomEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType +import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint import io.element.android.features.roomdetails.api.RoomDetailsEntryPoint import io.element.android.features.roomdetails.impl.edit.RoomDetailsEditNode import io.element.android.features.roomdetails.impl.invite.RoomInviteMembersNode import io.element.android.features.roomdetails.impl.members.RoomMemberListNode import io.element.android.features.roomdetails.impl.members.details.RoomMemberDetailsNode import io.element.android.features.roomdetails.impl.notificationsettings.RoomNotificationSettingsNode -import io.element.android.features.roomdetails.impl.rolesandpermissions.RolesAndPermissionsFlowNode import io.element.android.features.roomdetails.impl.securityandprivacy.SecurityAndPrivacyFlowNode import io.element.android.features.userprofile.shared.UserProfileNodeHelper import io.element.android.features.verifysession.api.OutgoingVerificationEntryPoint @@ -82,6 +82,7 @@ class RoomDetailsFlowNode( private val outgoingVerificationEntryPoint: OutgoingVerificationEntryPoint, private val reportRoomEntryPoint: ReportRoomEntryPoint, private val changeRoomMemberRolesEntryPoint: ChangeRoomMemberRolesEntryPoint, + private val rolesAndPermissionsEntryPoint: RolesAndPermissionsEntryPoint, ) : BaseFlowNode( backstack = BackStack( initialElement = plugins.filterIsInstance().first().initialElement.toNavTarget(), @@ -343,7 +344,7 @@ class RoomDetailsFlowNode( } is NavTarget.AdminSettings -> { - createNode(buildContext) + rolesAndPermissionsEntryPoint.createNode(this, buildContext) } NavTarget.PinnedMessagesList -> { val params = MessagesEntryPoint.Params( From 3b5c2bb8eb6e2e3dc6e17ad5bd78fc87c626e3a9 Mon Sep 17 00:00:00 2001 From: ganfra Date: Mon, 3 Nov 2025 18:35:18 +0100 Subject: [PATCH 03/16] change(roles and permissions): fix localazy strings --- .../impl/permissions/ChangeRoomPermissionsView.kt | 2 +- .../rolesandpermissions/impl/root/RolesAndPermissionsView.kt | 2 +- tools/localazy/config.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt index 52c4e254dd..6275dbf73e 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import io.element.android.compound.tokens.generated.CompoundIcons -import io.element.android.features.roomdetails.impl.R +import io.element.android.features.rolesandpermissions.impl.R import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.designsystem.components.async.AsyncActionView import io.element.android.libraries.designsystem.components.button.BackButton diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt index 11341a75ef..3ee3a409de 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt @@ -20,7 +20,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons -import io.element.android.features.roomdetails.impl.R +import io.element.android.features.rolesandpermissions.impl.R import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.designsystem.components.ProgressDialog import io.element.android.libraries.designsystem.components.async.AsyncActionView diff --git a/tools/localazy/config.json b/tools/localazy/config.json index 82c273db2e..456de15c83 100644 --- a/tools/localazy/config.json +++ b/tools/localazy/config.json @@ -366,7 +366,7 @@ ] }, { - "name" : ":features:changeroommemberroles:impl", + "name" : ":features:rolesandpermissions:impl", "includeRegex" : [ "screen_room_change_.*", "screen_room_roles_.*", From 08227d44036bc34ed565b4af18a9120fc1fdbb74 Mon Sep 17 00:00:00 2001 From: ganfra Date: Mon, 3 Nov 2025 21:40:37 +0100 Subject: [PATCH 04/16] change(roles and permissions): update change permission design --- .../impl/RolesAndPermissionsFlowNode.kt | 20 +--- .../permissions/ChangeRoomPermissionsEvent.kt | 4 +- .../permissions/ChangeRoomPermissionsNode.kt | 20 +--- .../ChangeRoomPermissionsPresenter.kt | 54 ++++++----- .../permissions/ChangeRoomPermissionsState.kt | 58 +++++++++++- .../ChangeRoomPermissionsStateProvider.kt | 24 ++--- .../permissions/ChangeRoomPermissionsView.kt | 91 ++++++------------- .../impl/root/RolesAndPermissionsNode.kt | 9 +- .../impl/root/RolesAndPermissionsView.kt | 19 +--- .../preferences/PreferenceDropdown.kt | 13 +++ 10 files changed, 145 insertions(+), 167 deletions(-) diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt index 36e4d233ca..81ef3b3b1e 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt @@ -23,7 +23,6 @@ import io.element.android.annotations.ContributesNode import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.features.rolesandpermissions.impl.permissions.ChangeRoomPermissionsNode -import io.element.android.features.rolesandpermissions.impl.permissions.ChangeRoomPermissionsSection import io.element.android.features.rolesandpermissions.impl.root.RolesAndPermissionsNode import io.element.android.libraries.architecture.BackstackView import io.element.android.libraries.architecture.BaseFlowNode @@ -59,7 +58,7 @@ class RolesAndPermissionsFlowNode( data object ModeratorList : NavTarget @Parcelize - data class ChangeRoomPermissions(val section: ChangeRoomPermissionsSection) : NavTarget + data object ChangeRoomPermissions: NavTarget } override fun onBuilt() { @@ -84,17 +83,10 @@ class RolesAndPermissionsFlowNode( backstack.push(NavTarget.ModeratorList) } - override fun openEditRoomDetailsPermissions() { - backstack.push(NavTarget.ChangeRoomPermissions(ChangeRoomPermissionsSection.RoomDetails)) + override fun openEditPermissions() { + backstack.push(NavTarget.ChangeRoomPermissions) } - override fun openMessagesAndContentPermissions() { - backstack.push(NavTarget.ChangeRoomPermissions(ChangeRoomPermissionsSection.MessagesAndContent)) - } - - override fun openModerationPermissions() { - backstack.push(NavTarget.ChangeRoomPermissions(ChangeRoomPermissionsSection.MembershipModeration)) - } } createNode( buildContext = buildContext, @@ -118,11 +110,7 @@ class RolesAndPermissionsFlowNode( ) } is NavTarget.ChangeRoomPermissions -> { - val inputs = ChangeRoomPermissionsNode.Inputs(navTarget.section) - createNode( - buildContext = buildContext, - plugins = listOf(inputs), - ) + createNode(buildContext = buildContext) } } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsEvent.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsEvent.kt index f17960c790..ee2984205d 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsEvent.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsEvent.kt @@ -7,10 +7,8 @@ package io.element.android.features.rolesandpermissions.impl.permissions -import io.element.android.libraries.matrix.api.room.RoomMember - interface ChangeRoomPermissionsEvent { - data class ChangeMinimumRoleForAction(val action: RoomPermissionType, val role: RoomMember.Role) : ChangeRoomPermissionsEvent + data class ChangeMinimumRoleForAction(val action: RoomPermissionType, val role: SelectableRole) : ChangeRoomPermissionsEvent data object Save : ChangeRoomPermissionsEvent data object Exit : ChangeRoomPermissionsEvent data object ResetPendingActions : ChangeRoomPermissionsEvent diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt index c0c7d016dd..b8261abd89 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt @@ -7,7 +7,6 @@ package io.element.android.features.rolesandpermissions.impl.permissions -import android.os.Parcelable import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import com.bumble.appyx.core.modality.BuildContext @@ -16,25 +15,15 @@ import com.bumble.appyx.core.plugin.Plugin import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode -import io.element.android.libraries.architecture.NodeInputs -import io.element.android.libraries.architecture.inputs import io.element.android.libraries.di.RoomScope -import kotlinx.parcelize.Parcelize @ContributesNode(RoomScope::class) @AssistedInject class ChangeRoomPermissionsNode( @Assisted buildContext: BuildContext, @Assisted plugins: List, - presenterFactory: ChangeRoomPermissionsPresenter.Factory, + private val presenter: ChangeRoomPermissionsPresenter, ) : Node(buildContext, plugins = plugins) { - @Parcelize - data class Inputs( - val section: ChangeRoomPermissionsSection, - ) : NodeInputs, Parcelable - - private val inputs: Inputs = inputs() - private val presenter = presenterFactory.create(inputs.section) @Composable override fun View(modifier: Modifier) { @@ -46,10 +35,3 @@ class ChangeRoomPermissionsNode( ) } } - -@Parcelize -enum class ChangeRoomPermissionsSection : Parcelable { - RoomDetails, - MessagesAndContent, - MembershipModeration, -} diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt index ce59aa1907..e073a48171 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt @@ -15,50 +15,50 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue -import dev.zacsweers.metro.Assisted -import dev.zacsweers.metro.AssistedFactory -import dev.zacsweers.metro.AssistedInject +import dev.zacsweers.metro.Inject import io.element.android.features.rolesandpermissions.impl.analytics.trackPermissionChangeAnalytics 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.RoomMember 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 +import kotlinx.collections.immutable.persistentMapOf import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch -@AssistedInject +@Inject class ChangeRoomPermissionsPresenter( - @Assisted private val section: ChangeRoomPermissionsSection, private val room: JoinedRoom, private val analyticsService: AnalyticsService, ) : Presenter { companion object { - internal fun itemsForSection(section: ChangeRoomPermissionsSection) = when (section) { - ChangeRoomPermissionsSection.RoomDetails -> persistentListOf( + private fun itemsForSection(section: RoomPermissionsSection) = when (section) { + RoomPermissionsSection.RoomDetails -> persistentListOf( RoomPermissionType.ROOM_NAME, RoomPermissionType.ROOM_AVATAR, RoomPermissionType.ROOM_TOPIC, ) - ChangeRoomPermissionsSection.MessagesAndContent -> persistentListOf( + RoomPermissionsSection.MessagesAndContent -> persistentListOf( RoomPermissionType.SEND_EVENTS, RoomPermissionType.REDACT_EVENTS, ) - ChangeRoomPermissionsSection.MembershipModeration -> persistentListOf( + RoomPermissionsSection.MembershipModeration -> persistentListOf( RoomPermissionType.INVITE, RoomPermissionType.KICK, RoomPermissionType.BAN, ) } - } - @AssistedFactory - interface Factory { - fun create(section: ChangeRoomPermissionsSection): ChangeRoomPermissionsPresenter + + internal fun buildItems(forSpace: Boolean) = persistentMapOf( + RoomPermissionsSection.RoomDetails to itemsForSection(RoomPermissionsSection.RoomDetails), + RoomPermissionsSection.MessagesAndContent to itemsForSection(RoomPermissionsSection.MessagesAndContent), + RoomPermissionsSection.MembershipModeration to itemsForSection(RoomPermissionsSection.MembershipModeration), + ) } - private val items: ImmutableList = itemsForSection(section) + private val items = buildItems(forSpace = room.info().isSpace) private var initialPermissions by mutableStateOf(null) private var currentPermissions by mutableStateOf(null) @@ -80,15 +80,20 @@ class ChangeRoomPermissionsPresenter( fun handleEvent(event: ChangeRoomPermissionsEvent) { when (event) { is ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction -> { + val powerLevel = when (event.role) { + SelectableRole.Admin -> RoomMember.Role.Admin.powerLevel + SelectableRole.Moderator -> RoomMember.Role.Moderator.powerLevel + SelectableRole.Everyone -> RoomMember.Role.User.powerLevel + } currentPermissions = when (event.action) { - RoomPermissionType.BAN -> currentPermissions?.copy(ban = event.role.powerLevel) - RoomPermissionType.INVITE -> currentPermissions?.copy(invite = event.role.powerLevel) - RoomPermissionType.KICK -> currentPermissions?.copy(kick = event.role.powerLevel) - RoomPermissionType.SEND_EVENTS -> currentPermissions?.copy(sendEvents = event.role.powerLevel) - RoomPermissionType.REDACT_EVENTS -> currentPermissions?.copy(redactEvents = event.role.powerLevel) - RoomPermissionType.ROOM_NAME -> currentPermissions?.copy(roomName = event.role.powerLevel) - RoomPermissionType.ROOM_AVATAR -> currentPermissions?.copy(roomAvatar = event.role.powerLevel) - RoomPermissionType.ROOM_TOPIC -> currentPermissions?.copy(roomTopic = event.role.powerLevel) + RoomPermissionType.BAN -> currentPermissions?.copy(ban = powerLevel) + RoomPermissionType.INVITE -> currentPermissions?.copy(invite = powerLevel) + RoomPermissionType.KICK -> currentPermissions?.copy(kick = powerLevel) + RoomPermissionType.SEND_EVENTS -> currentPermissions?.copy(sendEvents = powerLevel) + RoomPermissionType.REDACT_EVENTS -> currentPermissions?.copy(redactEvents = powerLevel) + RoomPermissionType.ROOM_NAME -> currentPermissions?.copy(roomName = powerLevel) + RoomPermissionType.ROOM_AVATAR -> currentPermissions?.copy(roomAvatar = powerLevel) + RoomPermissionType.ROOM_TOPIC -> currentPermissions?.copy(roomTopic = powerLevel) } } is ChangeRoomPermissionsEvent.Save -> coroutineScope.save() @@ -106,9 +111,8 @@ class ChangeRoomPermissionsPresenter( } } return ChangeRoomPermissionsState( - section = section, currentPermissions = currentPermissions, - items = items, + itemsBySection = items, hasChanges = hasChanges, saveAction = saveAction, confirmExitAction = confirmExitAction, diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt index da106c888b..e91dd9fcb6 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt @@ -7,19 +7,71 @@ package io.element.android.features.rolesandpermissions.impl.permissions +import androidx.compose.runtime.Composable +import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.ui.res.stringResource +import io.element.android.features.rolesandpermissions.impl.R import io.element.android.libraries.architecture.AsyncAction +import io.element.android.libraries.designsystem.components.preferences.DropdownOption +import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.ImmutableMap data class ChangeRoomPermissionsState( - val section: ChangeRoomPermissionsSection, val currentPermissions: RoomPowerLevelsValues?, - val items: ImmutableList, + val itemsBySection: ImmutableMap>, val hasChanges: Boolean, val saveAction: AsyncAction, val confirmExitAction: AsyncAction, val eventSink: (ChangeRoomPermissionsEvent) -> Unit, -) +){ + fun selectedRoleForType(type: RoomPermissionType): SelectableRole? { + if(currentPermissions == null) return null + val role = when (type) { + RoomPermissionType.BAN -> RoomMember.Role.forPowerLevel(currentPermissions.ban) + RoomPermissionType.INVITE -> RoomMember.Role.forPowerLevel(currentPermissions.invite) + RoomPermissionType.KICK -> RoomMember.Role.forPowerLevel(currentPermissions.kick) + RoomPermissionType.SEND_EVENTS -> RoomMember.Role.forPowerLevel(currentPermissions.sendEvents) + RoomPermissionType.REDACT_EVENTS -> RoomMember.Role.forPowerLevel(currentPermissions.redactEvents) + RoomPermissionType.ROOM_NAME -> RoomMember.Role.forPowerLevel(currentPermissions.roomName) + RoomPermissionType.ROOM_AVATAR -> RoomMember.Role.forPowerLevel(currentPermissions.roomAvatar) + RoomPermissionType.ROOM_TOPIC -> RoomMember.Role.forPowerLevel(currentPermissions.roomTopic) + } + return when(role){ + is RoomMember.Role.Owner, + RoomMember.Role.Admin -> SelectableRole.Admin + RoomMember.Role.Moderator -> SelectableRole.Moderator + RoomMember.Role.User -> SelectableRole.Everyone + } + } + +} + +enum class RoomPermissionsSection { + RoomDetails, + MessagesAndContent, + MembershipModeration, +} + +enum class SelectableRole: DropdownOption { + Admin { + @Composable + @ReadOnlyComposable + override fun getText(): String = stringResource(R.string.screen_room_member_list_role_administrator) + }, + Moderator { + @Composable + @ReadOnlyComposable + override fun getText(): String = stringResource(R.string.screen_room_member_list_role_moderator) + }, + Everyone { + @Composable + @ReadOnlyComposable + override fun getText(): String = stringResource(R.string.screen_room_change_permissions_everyone) + } +} + enum class RoomPermissionType { BAN, diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsStateProvider.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsStateProvider.kt index 484caa6dbe..2196c4aa46 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsStateProvider.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsStateProvider.kt @@ -11,41 +11,33 @@ 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.RoomPowerLevelsValues -import kotlinx.collections.immutable.toImmutableList +import kotlinx.collections.immutable.ImmutableList +import kotlinx.collections.immutable.toImmutableMap class ChangeRoomPermissionsStateProvider : PreviewParameterProvider { override val values: Sequence get() = sequenceOf( - aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.RoomDetails), - aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.MessagesAndContent), - aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.MembershipModeration), - aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true), - aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, saveAction = AsyncAction.Loading), + aChangeRoomPermissionsState(), + aChangeRoomPermissionsState(hasChanges = true), + aChangeRoomPermissionsState(hasChanges = true, saveAction = AsyncAction.Loading), aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, saveAction = AsyncAction.Failure(IllegalStateException("Failed to save changes")) ), - aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, - hasChanges = true, - confirmExitAction = AsyncAction.ConfirmingNoParams, - ), + aChangeRoomPermissionsState(hasChanges = true, confirmExitAction = AsyncAction.ConfirmingNoParams), ) } internal fun aChangeRoomPermissionsState( - section: ChangeRoomPermissionsSection, currentPermissions: RoomPowerLevelsValues = previewPermissions(), - items: List = ChangeRoomPermissionsPresenter.itemsForSection(section), + itemsBySection: Map> = ChangeRoomPermissionsPresenter.buildItems(false), hasChanges: Boolean = false, saveAction: AsyncAction = AsyncAction.Uninitialized, confirmExitAction: AsyncAction = AsyncAction.Uninitialized, eventSink: (ChangeRoomPermissionsEvent) -> Unit = {}, ) = ChangeRoomPermissionsState( - section = section, currentPermissions = currentPermissions, - items = items.toImmutableList(), + itemsBySection = itemsBySection.toImmutableMap(), hasChanges = hasChanges, saveAction = saveAction, confirmExitAction = confirmExitAction, diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt index 6275dbf73e..85a75f9f35 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt @@ -23,6 +23,7 @@ import io.element.android.libraries.designsystem.components.async.AsyncActionVie import io.element.android.libraries.designsystem.components.button.BackButton import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog import io.element.android.libraries.designsystem.components.list.ListItemContent +import io.element.android.libraries.designsystem.components.preferences.PreferenceDropdown import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.IconSource @@ -36,6 +37,7 @@ 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.RoomPowerLevelsValues import io.element.android.libraries.ui.strings.CommonStrings +import kotlinx.collections.immutable.toImmutableList @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -50,13 +52,8 @@ fun ChangeRoomPermissionsView( Scaffold( modifier = modifier, topBar = { - val title = when (state.section) { - ChangeRoomPermissionsSection.RoomDetails -> stringResource(R.string.screen_room_change_permissions_room_details) - ChangeRoomPermissionsSection.MessagesAndContent -> stringResource(R.string.screen_room_change_permissions_messages_and_content) - ChangeRoomPermissionsSection.MembershipModeration -> stringResource(R.string.screen_room_change_permissions_member_moderation) - } TopAppBar( - titleStr = title, + titleStr = stringResource(R.string.screen_room_roles_and_permissions_permissions_header), navigationIcon = { BackButton(onClick = { state.eventSink(ChangeRoomPermissionsEvent.Exit) }) }, @@ -75,29 +72,25 @@ fun ChangeRoomPermissionsView( .padding(padding) .fillMaxSize() ) { - for ((index, permissionItem) in state.items.withIndex()) { + state.itemsBySection.onEachIndexed { index, (section, items) -> item { - ListSectionHeader(titleForSection(item = permissionItem), hasDivider = index > 0) - SelectRoleItem( - permissionsItem = permissionItem, - role = RoomMember.Role.Admin, - currentPermissions = state.currentPermissions - ) { item, role -> - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(item, role)) - } - SelectRoleItem( - permissionsItem = permissionItem, - role = RoomMember.Role.Moderator, - currentPermissions = state.currentPermissions - ) { item, role -> - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(item, role)) - } - SelectRoleItem( - permissionsItem = permissionItem, - role = RoomMember.Role.User, - currentPermissions = state.currentPermissions - ) { item, role -> - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(item, role)) + ListSectionHeader(titleForSection(section), hasDivider = index>0) + } + for (permissionType in items) { + item { + PreferenceDropdown( + title = titleForType(permissionType), + selectedOption = state.selectedRoleForType(permissionType), + options = SelectableRole.entries.toImmutableList(), + onSelectOption = { role -> + state.eventSink( + ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction( + action = permissionType, + role = role + ) + ) + } + ) } } } @@ -126,47 +119,15 @@ fun ChangeRoomPermissionsView( onErrorDismiss = {}, ) } - @Composable -private fun SelectRoleItem( - permissionsItem: RoomPermissionType, - role: RoomMember.Role, - currentPermissions: RoomPowerLevelsValues?, - onClick: (RoomPermissionType, RoomMember.Role) -> Unit -) { - val title = when (role) { - RoomMember.Role.Admin -> stringResource(R.string.screen_room_change_permissions_administrators) - RoomMember.Role.Moderator -> stringResource(R.string.screen_room_change_permissions_moderators) - RoomMember.Role.User -> stringResource(R.string.screen_room_change_permissions_everyone) - else -> error("Unsupported role selected: $role") - } - ListItem( - headlineContent = { Text(text = title) }, - trailingContent = if (currentPermissions?.isSelected(permissionsItem, role).orFalse()) { - ListItemContent.Icon(IconSource.Vector(CompoundIcons.Check())) - } else { - null - }, - style = ListItemStyle.Primary, - onClick = { onClick(permissionsItem, role) }, - ) -} - -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 - RoomPermissionType.KICK -> RoomMember.Role.forPowerLevel(kick) == role - RoomPermissionType.SEND_EVENTS -> RoomMember.Role.forPowerLevel(sendEvents) == role - RoomPermissionType.REDACT_EVENTS -> RoomMember.Role.forPowerLevel(redactEvents) == role - RoomPermissionType.ROOM_NAME -> RoomMember.Role.forPowerLevel(roomName) == role - RoomPermissionType.ROOM_AVATAR -> RoomMember.Role.forPowerLevel(roomAvatar) == role - RoomPermissionType.ROOM_TOPIC -> RoomMember.Role.forPowerLevel(roomTopic) == role - } +private fun titleForSection(section: RoomPermissionsSection): String = when (section) { + RoomPermissionsSection.RoomDetails -> stringResource(R.string.screen_room_change_permissions_room_details) + RoomPermissionsSection.MessagesAndContent -> stringResource(R.string.screen_room_change_permissions_messages_and_content) + RoomPermissionsSection.MembershipModeration -> stringResource(R.string.screen_room_change_permissions_member_moderation) } @Composable -private fun titleForSection(item: RoomPermissionType): String = when (item) { +private fun titleForType(type: RoomPermissionType): String = when (type) { RoomPermissionType.INVITE -> stringResource(R.string.screen_room_change_permissions_invite_people) RoomPermissionType.KICK -> stringResource(R.string.screen_room_change_permissions_remove_people) RoomPermissionType.BAN -> stringResource(R.string.screen_room_change_permissions_ban_people) diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsNode.kt index f5c7b2e7c2..da06fd1eae 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsNode.kt @@ -39,9 +39,8 @@ class RolesAndPermissionsNode( interface Callback : Plugin, RolesAndPermissionsNavigator { override fun openAdminList() override fun openModeratorList() - override fun openEditRoomDetailsPermissions() - override fun openMessagesAndContentPermissions() - override fun openModerationPermissions() + override fun openEditPermissions() + override fun onBackClick() {} } @@ -85,7 +84,5 @@ interface RolesAndPermissionsNavigator { fun onBackClick() {} fun openAdminList() {} fun openModeratorList() {} - fun openEditRoomDetailsPermissions() {} - fun openMessagesAndContentPermissions() {} - fun openModerationPermissions() {} + fun openEditPermissions() {} } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt index 3ee3a409de..87b03fef92 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsView.kt @@ -78,25 +78,16 @@ fun RolesAndPermissionsView( leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Edit())) ) } - ListSectionHeader(title = stringResource(R.string.screen_room_roles_and_permissions_permissions_header), hasDivider = true) + HorizontalDivider() ListItem( - headlineContent = { Text(stringResource(R.string.screen_room_roles_and_permissions_room_details)) }, - leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Info())), - onClick = { rolesAndPermissionsNavigator.openEditRoomDetailsPermissions() }, - ) - ListItem( - headlineContent = { Text(stringResource(R.string.screen_room_roles_and_permissions_messages_and_content)) }, - leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Chat())), - onClick = { rolesAndPermissionsNavigator.openMessagesAndContentPermissions() }, - ) - ListItem( - headlineContent = { Text(stringResource(R.string.screen_room_roles_and_permissions_member_moderation)) }, - leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.User())), - onClick = { rolesAndPermissionsNavigator.openModerationPermissions() }, + headlineContent = { Text(stringResource(R.string.screen_room_roles_and_permissions_permissions_header)) }, + leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Settings())), + onClick = { rolesAndPermissionsNavigator.openEditPermissions() }, ) HorizontalDivider() ListItem( headlineContent = { Text(stringResource(R.string.screen_room_roles_and_permissions_reset)) }, + leadingContent = ListItemContent.Icon(IconSource.Vector(CompoundIcons.Delete())), onClick = { state.eventSink(RolesAndPermissionsEvents.ResetPermissions) }, style = ListItemStyle.Destructive, ) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt index 7be47338ca..ebac860c7e 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt @@ -10,9 +10,11 @@ package io.element.android.libraries.designsystem.components.preferences import androidx.annotation.DrawableRes +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.size import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExposedDropdownMenuBox import androidx.compose.material3.ExposedDropdownMenuDefaults @@ -26,6 +28,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.libraries.designsystem.components.list.ListItemContent @@ -33,6 +36,7 @@ import io.element.android.libraries.designsystem.components.preferences.componen import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.PreviewGroup import io.element.android.libraries.designsystem.theme.components.DropdownMenuItem +import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.ListItem import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.toEnabledColor @@ -144,6 +148,15 @@ private fun DropdownTrailingContent( style = ElementTheme.typography.fontBodyMdRegular ) }, + trailingIcon = { + if(option == selectedOption){ + Icon( + imageVector = CompoundIcons.Check(), + contentDescription = null, + tint = ElementTheme.colors.iconSuccessPrimary, + ) + } + }, onClick = { onSelectOption(option) onExpandedChange(false) From fb1e83fdf919350a04dbb8e66bba0237f8f0acbd Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 5 Nov 2025 10:16:51 +0100 Subject: [PATCH 05/16] design: update DropdownMenu to better match figma --- .../theme/components/DropdownMenu.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenu.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenu.kt index 6dc681b0e1..77a8c514a5 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenu.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/DropdownMenu.kt @@ -10,8 +10,10 @@ package io.element.android.libraries.designsystem.theme.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp import androidx.compose.ui.window.PopupProperties @@ -24,22 +26,24 @@ fun DropdownMenu( expanded: Boolean, onDismissRequest: () -> Unit, modifier: Modifier = Modifier, - // By default add a 16.dp offset to the menu - offset: DpOffset = DpOffset(x = 16.dp, y = 0.dp), + offset: DpOffset = DpOffset(x = 0.dp, y = 0.dp), properties: PopupProperties = PopupProperties(focusable = true), + minWidth: Dp = DropdownMenuDefaults.minWidth, content: @Composable ColumnScope.() -> Unit ) { - // Note: the internal shape corner radius should be 8dp, but there is a 4p value hardcoded in the internal Surface component androidx.compose.material3.DropdownMenu( expanded = expanded, onDismissRequest = onDismissRequest, modifier = modifier - .background(color = ElementTheme.colors.bgCanvasDefault) - .widthIn(min = minMenuWidth), + .background(color = ElementTheme.colors.bgCanvasDefaultLevel1) + .widthIn(min = minWidth), + shape = RoundedCornerShape(8.dp), offset = offset, properties = properties, content = content ) } -private val minMenuWidth = 200.dp +object DropdownMenuDefaults { + val minWidth = 200.dp +} From 849dfa4a5e376f11b5072e6f70c3af31a6cb62f1 Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 5 Nov 2025 10:21:09 +0100 Subject: [PATCH 06/16] design: PreferenceDropdown now uses DropdownMenu --- .../preferences/PreferenceDropdown.kt | 41 ++++++++----------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt index ebac860c7e..84b108aa7f 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt @@ -10,14 +10,10 @@ package io.element.android.libraries.designsystem.components.preferences import androidx.annotation.DrawableRes -import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.size import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.ExposedDropdownMenuBox -import androidx.compose.material3.ExposedDropdownMenuDefaults import androidx.compose.material3.MenuAnchorType import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -35,6 +31,7 @@ import io.element.android.libraries.designsystem.components.list.ListItemContent import io.element.android.libraries.designsystem.components.preferences.components.preferenceIcon import io.element.android.libraries.designsystem.preview.ElementThemedPreview import io.element.android.libraries.designsystem.preview.PreviewGroup +import io.element.android.libraries.designsystem.theme.components.DropdownMenu import io.element.android.libraries.designsystem.theme.components.DropdownMenuItem import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.ListItem @@ -118,27 +115,25 @@ private fun DropdownTrailingContent( onSelectOption: (T) -> Unit, modifier: Modifier = Modifier, ) { - ExposedDropdownMenuBox( - expanded = expanded, - onExpandedChange = onExpandedChange, + Row( modifier = modifier, + verticalAlignment = Alignment.CenterVertically, ) { - Row( - modifier = Modifier.menuAnchor(MenuAnchorType.PrimaryNotEditable), - verticalAlignment = Alignment.CenterVertically, - ) { - Text( - text = selectedOption?.getText().orEmpty(), - maxLines = 1, - style = ElementTheme.typography.fontBodyMdRegular, - color = ElementTheme.colors.textSecondary, - ) - ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) - } - ExposedDropdownMenu( + Text( + text = selectedOption?.getText().orEmpty(), + maxLines = 1, + style = ElementTheme.typography.fontBodyMdRegular, + color = ElementTheme.colors.textSecondary, + ) + Icon( + imageVector = CompoundIcons.ChevronDown(), + contentDescription = null, + tint = ElementTheme.colors.iconSecondary, + ) + DropdownMenu( expanded = expanded, + minWidth = 0.dp, onDismissRequest = { onExpandedChange(false) }, - matchTextFieldWidth = false, ) { options.forEach { option -> DropdownMenuItem( @@ -149,11 +144,11 @@ private fun DropdownTrailingContent( ) }, trailingIcon = { - if(option == selectedOption){ + if (option == selectedOption) { Icon( imageVector = CompoundIcons.Check(), contentDescription = null, - tint = ElementTheme.colors.iconSuccessPrimary, + tint = ElementTheme.colors.iconAccentPrimary, ) } }, From 288171ba902b8deab3ce69aff5ff52d443c6febd Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 5 Nov 2025 14:42:34 +0100 Subject: [PATCH 07/16] change(roles and permissions): improve the flow --- .../features/home/impl/HomeFlowNode.kt | 7 +- .../api/ChangeRoomMemberRolesEntryPoint.kt | 4 +- .../impl/RolesAndPermissionsFlowNode.kt | 77 +++++++++++-------- .../permissions/ChangeRoomPermissionsNode.kt | 9 ++- .../permissions/ChangeRoomPermissionsView.kt | 20 ++--- .../impl/roles/ChangeRolesNode.kt | 9 ++- .../impl/roles/ChangeRolesPresenter.kt | 11 ++- .../impl/roles/ChangeRolesView.kt | 19 +---- .../roles/ChangeRoomMemberRolesRootNode.kt | 5 +- .../impl/roles/ChangeRolesViewTest.kt | 3 - .../FakeChangeRoomMemberRolesEntryPoint.kt | 6 +- .../roomdetails/impl/RoomDetailsFlowNode.kt | 6 +- .../impl/DefaultRoomDetailsEntryPointTest.kt | 2 +- 13 files changed, 93 insertions(+), 85 deletions(-) diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt index cf1d9e829d..037204bac6 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt @@ -40,7 +40,6 @@ import io.element.android.features.logout.api.direct.DirectLogoutView import io.element.android.features.reportroom.api.ReportRoomEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType -import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint import io.element.android.libraries.architecture.BackstackView import io.element.android.libraries.architecture.BaseFlowNode import io.element.android.libraries.architecture.appyx.launchMolecule @@ -94,10 +93,12 @@ class HomeFlowNode( changeRoomMemberRolesNode: ChangeRoomMemberRolesEntryPoint.NodeProxy, -> commonLifecycle.coroutineScope.launch { - changeRoomMemberRolesNode.waitForRoleChanged() + val isNewOwnerSelected = changeRoomMemberRolesNode.waitForCompletion() withContext(NonCancellable) { backstack.pop() - onNewOwnersSelected(changeRoomMemberRolesNode.roomId) + if(isNewOwnerSelected) { + onNewOwnersSelected(changeRoomMemberRolesNode.roomId) + } } } } diff --git a/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt index 0d93632699..52f0c7a7ba 100644 --- a/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt +++ b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt @@ -24,11 +24,11 @@ fun interface ChangeRoomMemberRolesEntryPoint : FeatureEntryPoint { interface NodeProxy { val roomId: RoomId - suspend fun waitForRoleChanged() + suspend fun waitForCompletion(): Boolean } } -enum class ChangeRoomMemberRolesListType : NodeInputs { +enum class ChangeRoomMemberRolesListType { SelectNewOwnersWhenLeaving, Admins, Moderators diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt index 81ef3b3b1e..0c18a3c7a5 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt @@ -8,8 +8,11 @@ package io.element.android.features.rolesandpermissions.impl import android.os.Parcelable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.lifecycle.coroutineScope import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node @@ -20,15 +23,18 @@ import com.bumble.appyx.navmodel.backstack.operation.push import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode -import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.features.rolesandpermissions.impl.permissions.ChangeRoomPermissionsNode +import io.element.android.features.rolesandpermissions.impl.roles.ChangeRolesNode import io.element.android.features.rolesandpermissions.impl.root.RolesAndPermissionsNode import io.element.android.libraries.architecture.BackstackView import io.element.android.libraries.architecture.BaseFlowNode import io.element.android.libraries.architecture.createNode +import io.element.android.libraries.designsystem.components.async.AsyncIndicator +import io.element.android.libraries.designsystem.components.async.AsyncIndicatorHost +import io.element.android.libraries.designsystem.components.async.AsyncIndicatorState import io.element.android.libraries.di.RoomScope -import io.element.android.libraries.matrix.api.room.JoinedRoom +import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize @@ -37,11 +43,9 @@ import kotlinx.parcelize.Parcelize class RolesAndPermissionsFlowNode( @Assisted buildContext: BuildContext, @Assisted plugins: List, - private val joinedRoom: JoinedRoom, - private val changeRoomMemberRolesEntryPoint: ChangeRoomMemberRolesEntryPoint, ) : BaseFlowNode( backstack = BackStack( - initialElement = NavTarget.AdminSettings, + initialElement = NavTarget.Root, savedStateMap = buildContext.savedStateMap, ), buildContext = buildContext, @@ -49,38 +53,49 @@ class RolesAndPermissionsFlowNode( ) { sealed interface NavTarget : Parcelable { @Parcelize - data object AdminSettings : NavTarget + data object Root : NavTarget @Parcelize - data object AdminList : NavTarget + data object ChangeAdmins : NavTarget @Parcelize - data object ModeratorList : NavTarget + data object ChangeModerators : NavTarget @Parcelize data object ChangeRoomPermissions: NavTarget } + private val asyncIndicatorState = AsyncIndicatorState() + override fun onBuilt() { super.onBuilt() - whenChildAttached { lifecycle, node: ChangeRoomMemberRolesEntryPoint.NodeProxy -> + whenChildAttached { lifecycle, node: ChangeRolesNode -> lifecycle.coroutineScope.launch { - node.waitForRoleChanged() - backstack.pop() + val changesSaved = node.waitForCompletion() + onChangeComplete(changesSaved) + } + } + } + + private fun onChangeComplete(changesSaved: Boolean) { + backstack.pop() + if (changesSaved) { + asyncIndicatorState.enqueue(durationMs = AsyncIndicator.DURATION_SHORT) { + AsyncIndicator.Custom(text = stringResource(CommonStrings.common_saved_changes)) } } } override fun resolve(navTarget: NavTarget, buildContext: BuildContext): Node { return when (navTarget) { - is NavTarget.AdminSettings -> { + is NavTarget.Root -> { val callback = object : RolesAndPermissionsNode.Callback { override fun openAdminList() { - backstack.push(NavTarget.AdminList) + backstack.push(NavTarget.ChangeAdmins) } override fun openModeratorList() { - backstack.push(NavTarget.ModeratorList) + backstack.push(NavTarget.ChangeModerators) } override fun openEditPermissions() { @@ -93,30 +108,32 @@ class RolesAndPermissionsFlowNode( plugins = listOf(callback), ) } - is NavTarget.AdminList -> { - changeRoomMemberRolesEntryPoint.createNode( - parentNode = this, - buildContext = buildContext, - room = joinedRoom, - listType = ChangeRoomMemberRolesListType.Admins, - ) + is NavTarget.ChangeAdmins -> { + val inputs = ChangeRolesNode.Inputs(ChangeRoomMemberRolesListType.Admins) + createNode(buildContext = buildContext, plugins = listOf(inputs)) } - is NavTarget.ModeratorList -> { - changeRoomMemberRolesEntryPoint.createNode( - parentNode = this, - buildContext = buildContext, - room = joinedRoom, - listType = ChangeRoomMemberRolesListType.Moderators, - ) + is NavTarget.ChangeModerators -> { + val inputs = ChangeRolesNode.Inputs(ChangeRoomMemberRolesListType.Moderators) + createNode(buildContext = buildContext, plugins = listOf(inputs)) } is NavTarget.ChangeRoomPermissions -> { - createNode(buildContext = buildContext) + val callback = object : ChangeRoomPermissionsNode.Callback { + override fun onComplete(changesSaved: Boolean) { + onChangeComplete(changesSaved) + } + } + createNode(buildContext = buildContext, plugins = listOf(callback)) } } } + + @Composable override fun View(modifier: Modifier) { - BackstackView() + Box(modifier = modifier) { + BackstackView() + AsyncIndicatorHost(modifier = Modifier.statusBarsPadding(), asyncIndicatorState) + } } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt index b8261abd89..b53938914d 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt @@ -15,6 +15,7 @@ import com.bumble.appyx.core.plugin.Plugin import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode +import io.element.android.libraries.architecture.callback import io.element.android.libraries.di.RoomScope @ContributesNode(RoomScope::class) @@ -25,13 +26,19 @@ class ChangeRoomPermissionsNode( private val presenter: ChangeRoomPermissionsPresenter, ) : Node(buildContext, plugins = plugins) { + interface Callback : Plugin { + fun onComplete(changesSaved: Boolean) + } + + private val callback: Callback = callback() + @Composable override fun View(modifier: Modifier) { val state = presenter.present() ChangeRoomPermissionsView( modifier = modifier, state = state, - onBackClick = this::navigateUp, + onComplete = callback::onComplete, ) } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt index 85a75f9f35..0fc022e979 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt @@ -16,26 +16,17 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter -import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.rolesandpermissions.impl.R -import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.designsystem.components.async.AsyncActionView import io.element.android.libraries.designsystem.components.button.BackButton import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog -import io.element.android.libraries.designsystem.components.list.ListItemContent import io.element.android.libraries.designsystem.components.preferences.PreferenceDropdown import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight -import io.element.android.libraries.designsystem.theme.components.IconSource -import io.element.android.libraries.designsystem.theme.components.ListItem -import io.element.android.libraries.designsystem.theme.components.ListItemStyle import io.element.android.libraries.designsystem.theme.components.ListSectionHeader import io.element.android.libraries.designsystem.theme.components.Scaffold -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.RoomPowerLevelsValues import io.element.android.libraries.ui.strings.CommonStrings import kotlinx.collections.immutable.toImmutableList @@ -43,7 +34,7 @@ import kotlinx.collections.immutable.toImmutableList @Composable fun ChangeRoomPermissionsView( state: ChangeRoomPermissionsState, - onBackClick: () -> Unit, + onComplete: (Boolean) -> Unit, modifier: Modifier = Modifier, ) { BackHandler { @@ -74,7 +65,7 @@ fun ChangeRoomPermissionsView( ) { state.itemsBySection.onEachIndexed { index, (section, items) -> item { - ListSectionHeader(titleForSection(section), hasDivider = index>0) + ListSectionHeader(titleForSection(section), hasDivider = index > 0) } for (permissionType in items) { item { @@ -99,13 +90,13 @@ fun ChangeRoomPermissionsView( AsyncActionView( async = state.saveAction, - onSuccess = { onBackClick() }, + onSuccess = { onComplete(true) }, onErrorDismiss = { state.eventSink(ChangeRoomPermissionsEvent.ResetPendingActions) } ) AsyncActionView( async = state.confirmExitAction, - onSuccess = { onBackClick() }, + onSuccess = { onComplete(false) }, confirmationDialog = { ConfirmationDialog( title = stringResource(R.string.screen_room_change_role_unsaved_changes_title), @@ -119,6 +110,7 @@ fun ChangeRoomPermissionsView( onErrorDismiss = {}, ) } + @Composable private fun titleForSection(section: RoomPermissionsSection): String = when (section) { RoomPermissionsSection.RoomDetails -> stringResource(R.string.screen_room_change_permissions_room_details) @@ -144,7 +136,7 @@ internal fun ChangeRoomPermissionsViewPreview(@PreviewParameter(ChangeRoomPermis ElementPreview { ChangeRoomPermissionsView( state = state, - onBackClick = {}, + onComplete = {}, ) } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNode.kt index 915b129c84..01eb423fb7 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesNode.kt @@ -21,6 +21,7 @@ import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRoles import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.architecture.appyx.launchMolecule import io.element.android.libraries.architecture.inputs +import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.di.RoomScope import io.element.android.libraries.matrix.api.room.RoomMember import kotlinx.coroutines.flow.first @@ -40,17 +41,17 @@ class ChangeRolesNode( private val presenter = presenterFactory.create(inputs.listType.toRoomMemberRole()) private val stateFlow = launchMolecule { presenter.present() } - suspend fun waitForRoleChanged() { - stateFlow.first { it.savingState.isSuccess() } + suspend fun waitForCompletion(): Boolean { + val successState = stateFlow.first { it.savingState.isSuccess() } + return successState.savingState.dataOrNull().orFalse() } @Composable override fun View(modifier: Modifier) { val state by stateFlow.collectAsState() ChangeRolesView( - modifier = modifier, state = state, - navigateUp = this::navigateUp, + modifier = modifier, ) } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt index 07a0c5a873..fb97080221 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt @@ -27,6 +27,7 @@ import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.designsystem.theme.components.SearchBarResultState +import io.element.android.libraries.di.annotations.SessionCoroutineScope import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.libraries.matrix.api.room.RoomMember @@ -41,10 +42,12 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext @AssistedInject class ChangeRolesPresenter( @@ -214,9 +217,13 @@ class ChangeRolesPresenter( saveState.value = AsyncAction.Failure(it) } .onSuccess { - saveState.value = AsyncAction.Success(true) // Asynchronously reload the room members - launch { room.updateMembers() } + launch { + withContext(NonCancellable) { + room.updateMembers() + } + } + saveState.value = AsyncAction.Success(true) } } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesView.kt index 16c6965f18..b74f7e2067 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesView.kt @@ -29,8 +29,6 @@ import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -42,7 +40,6 @@ import io.element.android.compound.theme.ElementTheme import io.element.android.features.rolesandpermissions.impl.R import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.designsystem.components.async.AsyncActionView -import io.element.android.libraries.designsystem.components.async.AsyncIndicator import io.element.android.libraries.designsystem.components.async.AsyncIndicatorHost import io.element.android.libraries.designsystem.components.async.rememberAsyncIndicatorState import io.element.android.libraries.designsystem.components.avatar.Avatar @@ -77,10 +74,8 @@ import kotlinx.collections.immutable.ImmutableList @Composable fun ChangeRolesView( state: ChangeRolesState, - navigateUp: () -> Unit, modifier: Modifier = Modifier, ) { - val latestNavigateUp by rememberUpdatedState(newValue = navigateUp) BackHandler(enabled = !state.isSearchActive) { state.eventSink(ChangeRolesEvent.Exit) } @@ -168,18 +163,9 @@ fun ChangeRolesView( val asyncIndicatorState = rememberAsyncIndicatorState() AsyncIndicatorHost(modifier = Modifier.statusBarsPadding(), asyncIndicatorState) - AsyncActionView( async = state.savingState, - onSuccess = { changeSaved -> - if (changeSaved) { - asyncIndicatorState.enqueue(durationMs = AsyncIndicator.DURATION_SHORT) { - AsyncIndicator.Custom(text = stringResource(CommonStrings.common_saved_changes)) - } - } else { - latestNavigateUp() - } - }, + onSuccess = {}, confirmationDialog = { confirming -> when (confirming) { is AsyncAction.ConfirmingCancellation -> { @@ -416,8 +402,7 @@ private fun MemberRow( internal fun ChangeRolesViewPreview(@PreviewParameter(ChangeRolesStateProvider::class) state: ChangeRolesState) { ElementPreview { ChangeRolesView( - state = state, - navigateUp = {}, + state = state ) } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt index 0f588667c6..aad691809f 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRoomMemberRolesRootNode.kt @@ -21,7 +21,6 @@ import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode import io.element.android.appnav.di.RoomGraphFactory import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint -import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.architecture.createNode @@ -71,7 +70,7 @@ class ChangeRoomMemberRolesRootNode( override val roomId: RoomId = inputs.joinedRoom.roomId - override suspend fun waitForRoleChanged() { - waitForChildAttached().waitForRoleChanged() + override suspend fun waitForCompletion(): Boolean { + return waitForChildAttached().waitForCompletion() } } diff --git a/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesViewTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesViewTest.kt index dc26741587..d0e6d120bd 100644 --- a/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesViewTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesViewTest.kt @@ -23,7 +23,6 @@ import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.toMatrixUser import io.element.android.libraries.matrix.ui.components.aMatrixUserList import io.element.android.libraries.ui.strings.CommonStrings -import io.element.android.tests.testutils.EnsureNeverCalled import io.element.android.tests.testutils.EnsureNeverCalledWithParam import io.element.android.tests.testutils.EventsRecorder import io.element.android.tests.testutils.clickOn @@ -306,12 +305,10 @@ class ChangeRolesViewTest { private fun AndroidComposeTestRule.setChangeRolesContent( state: ChangeRolesState, - onBackClick: () -> Unit = EnsureNeverCalled(), ) { setContent { ChangeRolesView( state = state, - navigateUp = onBackClick, ) } } diff --git a/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt index a2f9ac0253..de447cef3c 100644 --- a/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt +++ b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeChangeRoomMemberRolesEntryPoint.kt @@ -5,16 +5,16 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.rolesandpermissions.test +package io.element.android.features.changeroommemberroles.test import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node -import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint +import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesEntryPoint import io.element.android.features.rolesandpermissions.api.ChangeRoomMemberRolesListType import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.tests.testutils.lambda.lambdaError -class FakeChangeRoomMemberRolesEntryPoint : RolesAndPermissionsEntryPoint { +class FakeChangeRoomMemberRolesEntryPoint : ChangeRoomMemberRolesEntryPoint { override fun createNode( parentNode: Node, buildContext: BuildContext, diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt index 20e783fb6b..39c555be20 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsFlowNode.kt @@ -157,10 +157,12 @@ class RoomDetailsFlowNode( changeRoomMemberRolesNode: ChangeRoomMemberRolesEntryPoint.NodeProxy, -> commonLifecycle.coroutineScope.launch { - changeRoomMemberRolesNode.waitForRoleChanged() + val isNewOwnerSelected = changeRoomMemberRolesNode.waitForCompletion() withContext(NonCancellable) { backstack.pop() - roomDetailsNode.onNewOwnersSelected() + if (isNewOwnerSelected) { + roomDetailsNode.onNewOwnersSelected() + } } } } diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt index ad939734df..ebe92332e8 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt @@ -12,7 +12,7 @@ import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.testing.junit4.util.MainDispatcherRule import com.google.common.truth.Truth.assertThat import io.element.android.features.call.test.FakeElementCallEntryPoint -import io.element.android.features.rolesandpermissions.test.FakeChangeRoomMemberRolesEntryPoint +import io.element.android.features.changeroommemberroles.test.FakeChangeRoomMemberRolesEntryPoint import io.element.android.features.knockrequests.test.FakeKnockRequestsListEntryPoint import io.element.android.features.messages.test.FakeMessagesEntryPoint import io.element.android.features.poll.test.history.FakePollHistoryEntryPoint From fca62a333efa2beabae404d892da360ece332ebd Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 5 Nov 2025 15:31:48 +0100 Subject: [PATCH 08/16] change(roles and permissions): clean code --- .../features/home/impl/HomeFlowNode.kt | 2 +- .../api/ChangeRoomMemberRolesEntryPoint.kt | 1 - .../impl/RolesAndPermissionsFlowNode.kt | 5 +--- .../permissions/ChangeRoomPermissionsNode.kt | 1 - .../ChangeRoomPermissionsPresenter.kt | 24 ++++++++++++------- .../permissions/ChangeRoomPermissionsState.kt | 10 ++++---- .../impl/roles/ChangeRolesPresenter.kt | 1 - .../preferences/PreferenceDropdown.kt | 1 - 8 files changed, 22 insertions(+), 23 deletions(-) diff --git a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt index 037204bac6..553a60a185 100644 --- a/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt +++ b/features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeFlowNode.kt @@ -96,7 +96,7 @@ class HomeFlowNode( val isNewOwnerSelected = changeRoomMemberRolesNode.waitForCompletion() withContext(NonCancellable) { backstack.pop() - if(isNewOwnerSelected) { + if (isNewOwnerSelected) { onNewOwnersSelected(changeRoomMemberRolesNode.roomId) } } diff --git a/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt index 52f0c7a7ba..5bc4bbfbdd 100644 --- a/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt +++ b/features/rolesandpermissions/api/src/main/kotlin/io/element/android/features/rolesandpermissions/api/ChangeRoomMemberRolesEntryPoint.kt @@ -10,7 +10,6 @@ package io.element.android.features.rolesandpermissions.api import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import io.element.android.libraries.architecture.FeatureEntryPoint -import io.element.android.libraries.architecture.NodeInputs import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.room.JoinedRoom diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt index 0c18a3c7a5..17453e4451 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/RolesAndPermissionsFlowNode.kt @@ -62,7 +62,7 @@ class RolesAndPermissionsFlowNode( data object ChangeModerators : NavTarget @Parcelize - data object ChangeRoomPermissions: NavTarget + data object ChangeRoomPermissions : NavTarget } private val asyncIndicatorState = AsyncIndicatorState() @@ -101,7 +101,6 @@ class RolesAndPermissionsFlowNode( override fun openEditPermissions() { backstack.push(NavTarget.ChangeRoomPermissions) } - } createNode( buildContext = buildContext, @@ -127,8 +126,6 @@ class RolesAndPermissionsFlowNode( } } - - @Composable override fun View(modifier: Modifier) { Box(modifier = modifier) { diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt index b53938914d..81716ab8c4 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsNode.kt @@ -25,7 +25,6 @@ class ChangeRoomPermissionsNode( @Assisted plugins: List, private val presenter: ChangeRoomPermissionsPresenter, ) : Node(buildContext, plugins = plugins) { - interface Callback : Plugin { fun onComplete(changesSaved: Boolean) } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt index e073a48171..a6d4eeefd4 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt @@ -24,7 +24,7 @@ import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.powerlevels.RoomPowerLevelsValues import io.element.android.services.analytics.api.AnalyticsService import kotlinx.collections.immutable.persistentListOf -import kotlinx.collections.immutable.persistentMapOf +import kotlinx.collections.immutable.toImmutableMap import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch @@ -51,14 +51,22 @@ class ChangeRoomPermissionsPresenter( ) } - internal fun buildItems(forSpace: Boolean) = persistentMapOf( - RoomPermissionsSection.RoomDetails to itemsForSection(RoomPermissionsSection.RoomDetails), - RoomPermissionsSection.MessagesAndContent to itemsForSection(RoomPermissionsSection.MessagesAndContent), - RoomPermissionsSection.MembershipModeration to itemsForSection(RoomPermissionsSection.MembershipModeration), - ) + private fun RoomPermissionsSection.shouldShow(isSpace: Boolean): Boolean { + return when (this) { + RoomPermissionsSection.RoomDetails -> true + RoomPermissionsSection.MembershipModeration -> true + RoomPermissionsSection.MessagesAndContent -> !isSpace + } + } + + internal fun buildItems(isSpace: Boolean) = + RoomPermissionsSection.entries + .filter { section -> section.shouldShow(isSpace) } + .associateWith { itemsForSection(it) } + .toImmutableMap() } - private val items = buildItems(forSpace = room.info().isSpace) + private val itemsBySection = buildItems(isSpace = room.info().isSpace) private var initialPermissions by mutableStateOf(null) private var currentPermissions by mutableStateOf(null) @@ -112,7 +120,7 @@ class ChangeRoomPermissionsPresenter( } return ChangeRoomPermissionsState( currentPermissions = currentPermissions, - itemsBySection = items, + itemsBySection = itemsBySection, hasChanges = hasChanges, saveAction = saveAction, confirmExitAction = confirmExitAction, diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt index e91dd9fcb6..b1032e5fac 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt @@ -25,9 +25,9 @@ data class ChangeRoomPermissionsState( val saveAction: AsyncAction, val confirmExitAction: AsyncAction, val eventSink: (ChangeRoomPermissionsEvent) -> Unit, -){ +) { fun selectedRoleForType(type: RoomPermissionType): SelectableRole? { - if(currentPermissions == null) return null + if (currentPermissions == null) return null val role = when (type) { RoomPermissionType.BAN -> RoomMember.Role.forPowerLevel(currentPermissions.ban) RoomPermissionType.INVITE -> RoomMember.Role.forPowerLevel(currentPermissions.invite) @@ -38,14 +38,13 @@ data class ChangeRoomPermissionsState( RoomPermissionType.ROOM_AVATAR -> RoomMember.Role.forPowerLevel(currentPermissions.roomAvatar) RoomPermissionType.ROOM_TOPIC -> RoomMember.Role.forPowerLevel(currentPermissions.roomTopic) } - return when(role){ + return when (role) { is RoomMember.Role.Owner, RoomMember.Role.Admin -> SelectableRole.Admin RoomMember.Role.Moderator -> SelectableRole.Moderator RoomMember.Role.User -> SelectableRole.Everyone } } - } enum class RoomPermissionsSection { @@ -54,7 +53,7 @@ enum class RoomPermissionsSection { MembershipModeration, } -enum class SelectableRole: DropdownOption { +enum class SelectableRole : DropdownOption { Admin { @Composable @ReadOnlyComposable @@ -72,7 +71,6 @@ enum class SelectableRole: DropdownOption { } } - enum class RoomPermissionType { BAN, INVITE, diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt index fb97080221..e2049336a2 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt @@ -27,7 +27,6 @@ import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.designsystem.theme.components.SearchBarResultState -import io.element.android.libraries.di.annotations.SessionCoroutineScope import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.libraries.matrix.api.room.RoomMember diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt index 84b108aa7f..389dc6c15b 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt @@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MenuAnchorType import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf From 5f007fd50c2d9309036cfad91b48e695a1da763f Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 5 Nov 2025 17:54:02 +0100 Subject: [PATCH 09/16] quality(roles and permissions): fix tests --- .../permissions/ChangeRoomPermissionsView.kt | 1 + .../ChangeRoomPermissionsPresenterTest.kt} | 87 +++++++------------ .../ChangeRoomPermissionsViewTest.kt} | 73 +++++++--------- .../root}/RolesAndPermissionPresenterTest.kt | 2 +- .../impl/root}/RolesAndPermissionsViewTest.kt | 20 ++--- 5 files changed, 70 insertions(+), 113 deletions(-) rename features/{roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsPresenterTest.kt => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenterTest.kt} (79%) rename features/{roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsViewTest.kt => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsViewTest.kt} (66%) rename features/{roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionPresenterTest.kt (98%) rename features/{roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions => rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root}/RolesAndPermissionsViewTest.kt (89%) diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt index 0fc022e979..babe682717 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt @@ -74,6 +74,7 @@ fun ChangeRoomPermissionsView( selectedOption = state.selectedRoleForType(permissionType), options = SelectableRole.entries.toImmutableList(), onSelectOption = { role -> + println("Selected $role for $permissionType") state.eventSink( ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction( action = permissionType, diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsPresenterTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenterTest.kt similarity index 79% rename from features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsPresenterTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenterTest.kt index c59931140a..e19291cd2b 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsPresenterTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenterTest.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import app.cash.molecule.RecompositionMode import app.cash.molecule.moleculeFlow @@ -17,7 +17,6 @@ import im.vector.app.features.analytics.plan.RoomModeration 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.RoomPowerLevelsValues import io.element.android.libraries.matrix.test.room.FakeBaseRoom import io.element.android.libraries.matrix.test.room.FakeJoinedRoom @@ -26,19 +25,17 @@ import io.element.android.services.analytics.test.FakeAnalyticsService import kotlinx.coroutines.test.runTest import org.junit.Test -class ChangeBaseRoomPermissionsPresenterTest { +class ChangeRoomPermissionsPresenterTest { @Test fun `present - initial state`() = runTest { - val section = ChangeRoomPermissionsSection.RoomDetails - val presenter = createChangeRoomPermissionsPresenter(section = section) + val presenter = createChangeRoomPermissionsPresenter() moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { // Initial state, no permissions loaded awaitItem().run { - assertThat(this.section).isEqualTo(section) assertThat(this.currentPermissions).isNull() - assertThat(this.items).isNotEmpty() + assertThat(this.itemsBySection).isNotEmpty() assertThat(this.hasChanges).isFalse() assertThat(this.saveAction).isEqualTo(AsyncAction.Uninitialized) assertThat(this.confirmExitAction).isEqualTo(AsyncAction.Uninitialized) @@ -50,42 +47,22 @@ class ChangeBaseRoomPermissionsPresenterTest { } @Test - fun `present - RoomDetails section contains the right items`() = runTest { - val section = ChangeRoomPermissionsSection.RoomDetails - val presenter = createChangeRoomPermissionsPresenter(section = section) + fun `present - items by section are correct for room`() = runTest { + val presenter = createChangeRoomPermissionsPresenter() moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - assertThat(awaitUpdatedItem().items).containsExactly( + val itemsBySection = awaitUpdatedItem().itemsBySection + assertThat(itemsBySection[RoomPermissionsSection.RoomDetails]).containsExactly( RoomPermissionType.ROOM_NAME, RoomPermissionType.ROOM_AVATAR, RoomPermissionType.ROOM_TOPIC, ) - } - } - - @Test - fun `present - MessagesAndContent section contains the right items`() = runTest { - val section = ChangeRoomPermissionsSection.MessagesAndContent - val presenter = createChangeRoomPermissionsPresenter(section = section) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { - assertThat(awaitUpdatedItem().items).containsExactly( + assertThat(itemsBySection[RoomPermissionsSection.MessagesAndContent]).containsExactly( RoomPermissionType.SEND_EVENTS, RoomPermissionType.REDACT_EVENTS, ) - } - } - - @Test - fun `present - MembershipModeration section contains the right items`() = runTest { - val section = ChangeRoomPermissionsSection.MembershipModeration - val presenter = createChangeRoomPermissionsPresenter(section = section) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { - assertThat(awaitUpdatedItem().items).containsExactly( + assertThat(itemsBySection[RoomPermissionsSection.MembershipModeration]).containsExactly( RoomPermissionType.INVITE, RoomPermissionType.KICK, RoomPermissionType.BAN, @@ -103,7 +80,7 @@ class ChangeBaseRoomPermissionsPresenterTest { assertThat(state.currentPermissions?.roomName).isEqualTo(Admin.powerLevel) assertThat(state.hasChanges).isFalse() - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, SelectableRole.Moderator)) awaitItem().run { assertThat(currentPermissions?.roomName).isEqualTo(Moderator.powerLevel) @@ -120,18 +97,18 @@ class ChangeBaseRoomPermissionsPresenterTest { }.test { val state = awaitUpdatedItem() - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.INVITE, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.KICK, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.BAN, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.SEND_EVENTS, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.REDACT_EVENTS, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_AVATAR, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_TOPIC, Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.INVITE, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.KICK, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.BAN, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.SEND_EVENTS, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.REDACT_EVENTS, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_AVATAR, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_TOPIC, SelectableRole.Moderator)) - val items = cancelAndConsumeRemainingEvents() + val itemsBySection = cancelAndConsumeRemainingEvents() - (items.last() as? Event.Item)?.value?.run { + (itemsBySection.last() as? Event.Item)?.value?.run { assertThat(currentPermissions).isEqualTo( RoomPowerLevelsValues( invite = Moderator.powerLevel, @@ -165,14 +142,14 @@ class ChangeBaseRoomPermissionsPresenterTest { assertThat(state.currentPermissions?.roomName).isEqualTo(Admin.powerLevel) assertThat(state.hasChanges).isFalse() - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_AVATAR, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_TOPIC, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.SEND_EVENTS, Moderator)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.REDACT_EVENTS, User)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.KICK, Admin)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.BAN, Admin)) - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.INVITE, Admin)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_AVATAR, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_TOPIC, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.SEND_EVENTS, SelectableRole.Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.REDACT_EVENTS, SelectableRole.Everyone)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.KICK, SelectableRole.Admin)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.BAN, SelectableRole.Admin)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.INVITE, SelectableRole.Admin)) skipItems(7) assertThat(awaitItem().hasChanges).isTrue() @@ -230,7 +207,7 @@ class ChangeBaseRoomPermissionsPresenterTest { assertThat(state.currentPermissions?.roomName).isEqualTo(Admin.powerLevel) assertThat(state.hasChanges).isFalse() - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, SelectableRole.Moderator)) assertThat(awaitItem().hasChanges).isTrue() state.eventSink(ChangeRoomPermissionsEvent.Save) @@ -259,7 +236,7 @@ class ChangeBaseRoomPermissionsPresenterTest { presenter.present() }.test { val state = awaitUpdatedItem() - state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, Moderator)) + state.eventSink(ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, SelectableRole.Moderator)) assertThat(awaitItem().hasChanges).isTrue() state.eventSink(ChangeRoomPermissionsEvent.Exit) @@ -285,13 +262,11 @@ class ChangeBaseRoomPermissionsPresenterTest { } private fun createChangeRoomPermissionsPresenter( - section: ChangeRoomPermissionsSection = ChangeRoomPermissionsSection.RoomDetails, room: FakeJoinedRoom = FakeJoinedRoom( baseRoom = FakeBaseRoom(powerLevelsResult = { Result.success(defaultPermissions()) }), ), analyticsService: FakeAnalyticsService = FakeAnalyticsService(), ) = ChangeRoomPermissionsPresenter( - section = section, room = room, analyticsService = analyticsService, ) diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsViewTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsViewTest.kt similarity index 66% rename from features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsViewTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsViewTest.kt index f4ab1ef1a9..9627d03b7c 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeBaseRoomPermissionsViewTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsViewTest.kt @@ -5,40 +5,40 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions.permissions +package io.element.android.features.rolesandpermissions.impl.permissions import androidx.activity.ComponentActivity import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.compose.ui.test.junit4.createAndroidComposeRule -import androidx.compose.ui.test.onAllNodesWithText -import androidx.compose.ui.test.onFirst -import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 -import io.element.android.features.roomdetails.impl.R +import io.element.android.features.rolesandpermissions.impl.R import io.element.android.libraries.architecture.AsyncAction -import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.ui.strings.CommonStrings -import io.element.android.tests.testutils.EnsureNeverCalled +import io.element.android.tests.testutils.EnsureNeverCalledWithParam import io.element.android.tests.testutils.EventsRecorder import io.element.android.tests.testutils.clickOn import io.element.android.tests.testutils.clickOnFirst -import io.element.android.tests.testutils.ensureCalledOnce +import io.element.android.tests.testutils.ensureCalledOnceWithParam import io.element.android.tests.testutils.pressBack import io.element.android.tests.testutils.pressBackKey +import kotlinx.collections.immutable.persistentListOf +import kotlinx.collections.immutable.persistentMapOf import org.junit.Rule import org.junit.Test import org.junit.rules.TestRule import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -class ChangeBaseRoomPermissionsViewTest { +class ChangeRoomPermissionsViewTest { @get:Rule val rule = createAndroidComposeRule() @Test fun `click on back icon invokes Exit`() { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( - eventsRecorder = recorder, + state = aChangeRoomPermissionsState( + eventSink = recorder + ) ) rule.pressBack() recorder.assertSingle(ChangeRoomPermissionsEvent.Exit) @@ -48,7 +48,9 @@ class ChangeBaseRoomPermissionsViewTest { fun `click on back key invokes Exit`() { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( - eventsRecorder = recorder, + state = aChangeRoomPermissionsState( + eventSink = recorder + ) ) rule.pressBackKey() recorder.assertSingle(ChangeRoomPermissionsEvent.Exit) @@ -59,11 +61,9 @@ class ChangeBaseRoomPermissionsViewTest { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( state = aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, eventSink = recorder, ), - eventsRecorder = recorder, ) rule.pressBackKey() recorder.assertSingle(ChangeRoomPermissionsEvent.Exit) @@ -74,12 +74,10 @@ class ChangeBaseRoomPermissionsViewTest { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( state = aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, confirmExitAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), - eventsRecorder = recorder, ) rule.clickOn(CommonStrings.action_discard) recorder.assertSingle(ChangeRoomPermissionsEvent.Exit) @@ -90,12 +88,10 @@ class ChangeBaseRoomPermissionsViewTest { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( state = aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, confirmExitAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), - eventsRecorder = recorder, ) rule.clickOnFirst(CommonStrings.action_save) recorder.assertSingle(ChangeRoomPermissionsEvent.Save) @@ -105,21 +101,19 @@ class ChangeBaseRoomPermissionsViewTest { fun `click on a role item triggers ChangeRole event`() { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( - eventsRecorder = recorder, - ) - val admins = rule.activity.getText(R.string.screen_room_change_permissions_administrators).toString() - val moderators = rule.activity.getText(R.string.screen_room_change_permissions_moderators).toString() - val users = rule.activity.getText(R.string.screen_room_change_permissions_everyone).toString() - rule.onAllNodesWithText(admins).onFirst().performClick() - rule.onAllNodesWithText(moderators).onFirst().performClick() - rule.onAllNodesWithText(users).onFirst().performClick() - recorder.assertList( - listOf( - ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, RoomMember.Role.Admin), - ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, RoomMember.Role.Moderator), - ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, RoomMember.Role.User), + state = aChangeRoomPermissionsState( + itemsBySection = persistentMapOf( + // Makes sure there is only one item to click on + RoomPermissionsSection.RoomDetails to persistentListOf(RoomPermissionType.ROOM_NAME) + ), + eventSink = recorder, ) ) + rule.clickOn(R.string.screen_room_change_permissions_room_name) + rule.clickOn(R.string.screen_room_change_permissions_everyone) + recorder.assertSingle( + ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction(RoomPermissionType.ROOM_NAME, SelectableRole.Everyone), + ) } @Test @@ -127,11 +121,9 @@ class ChangeBaseRoomPermissionsViewTest { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( state = aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, eventSink = recorder, ), - eventsRecorder = recorder, ) rule.clickOn(CommonStrings.action_save) recorder.assertSingle(ChangeRoomPermissionsEvent.Save) @@ -139,14 +131,13 @@ class ChangeBaseRoomPermissionsViewTest { @Test fun `a successful save exits the screen`() { - ensureCalledOnce { callback -> + ensureCalledOnceWithParam(true) { callback -> rule.setChangeRoomPermissionsRule( state = aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, saveAction = AsyncAction.Success(Unit), ), - onBackClick = callback + onComplete = callback ) rule.clickOn(CommonStrings.action_save) } @@ -157,12 +148,10 @@ class ChangeBaseRoomPermissionsViewTest { val recorder = EventsRecorder() rule.setChangeRoomPermissionsRule( state = aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, saveAction = AsyncAction.Failure(IllegalStateException("Failed to set room power levels")), eventSink = recorder, ), - eventsRecorder = recorder, ) rule.clickOn(CommonStrings.action_ok) recorder.assertSingle(ChangeRoomPermissionsEvent.ResetPendingActions) @@ -170,17 +159,13 @@ class ChangeBaseRoomPermissionsViewTest { } private fun AndroidComposeTestRule.setChangeRoomPermissionsRule( - eventsRecorder: EventsRecorder = EventsRecorder(expectEvents = false), - state: ChangeRoomPermissionsState = aChangeRoomPermissionsState( - section = ChangeRoomPermissionsSection.RoomDetails, - eventSink = eventsRecorder, - ), - onBackClick: () -> Unit = EnsureNeverCalled(), + state: ChangeRoomPermissionsState = aChangeRoomPermissionsState(), + onComplete: (Boolean) -> Unit = EnsureNeverCalledWithParam(), ) { setContent { ChangeRoomPermissionsView( state = state, - onBackClick = onBackClick, + onComplete = onComplete, ) } } diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionPresenterTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionPresenterTest.kt similarity index 98% rename from features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionPresenterTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionPresenterTest.kt index 734cf4696a..d5350b05f4 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionPresenterTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionPresenterTest.kt @@ -5,7 +5,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import app.cash.molecule.RecompositionMode import app.cash.molecule.moleculeFlow diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsViewTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsViewTest.kt similarity index 89% rename from features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsViewTest.kt rename to features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsViewTest.kt index 4aa68bc047..c9355d64d5 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsViewTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/root/RolesAndPermissionsViewTest.kt @@ -5,13 +5,13 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.features.roomdetails.impl.rolesandpermissions +package io.element.android.features.rolesandpermissions.impl.root import androidx.activity.ComponentActivity import androidx.compose.ui.test.junit4.AndroidComposeTestRule import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.test.ext.junit.runners.AndroidJUnit4 -import io.element.android.features.roomdetails.impl.R +import io.element.android.features.rolesandpermissions.impl.R import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.ui.strings.CommonStrings @@ -83,14 +83,12 @@ class RolesAndPermissionsViewTest { @Test @Config(qualifiers = "h640dp") - fun `tapping on any of the permission items open the change permissions screen`() { - ensureCalledTimes(3) { callback -> + fun `tapping permission item open the change permissions screen`() { + ensureCalledTimes(1) { callback -> rule.setRolesAndPermissionsView( - openPermissionScreens = callback, + openEditPermissions = callback, ) - rule.clickOn(R.string.screen_room_roles_and_permissions_room_details) - rule.clickOn(R.string.screen_room_roles_and_permissions_messages_and_content) - rule.clickOn(R.string.screen_room_roles_and_permissions_member_moderation) + rule.clickOn(R.string.screen_room_roles_and_permissions_permissions_header) } } @@ -184,7 +182,7 @@ private fun AndroidComposeTestRule.setRoles goBack: () -> Unit = EnsureNeverCalled(), openAdminList: () -> Unit = EnsureNeverCalled(), openModeratorList: () -> Unit = EnsureNeverCalled(), - openPermissionScreens: () -> Unit = EnsureNeverCalled(), + openEditPermissions: () -> Unit = EnsureNeverCalled(), ) { setSafeContent { RolesAndPermissionsView( @@ -193,9 +191,7 @@ private fun AndroidComposeTestRule.setRoles override fun onBackClick() = goBack() override fun openAdminList() = openAdminList() override fun openModeratorList() = openModeratorList() - override fun openEditRoomDetailsPermissions() = openPermissionScreens() - override fun openModerationPermissions() = openPermissionScreens() - override fun openMessagesAndContentPermissions() = openPermissionScreens() + override fun openEditPermissions() = openEditPermissions() } ) } From 602c32fb9a3c42d1c26a9a1229e40bad44dc5209 Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 5 Nov 2025 21:42:51 +0100 Subject: [PATCH 10/16] change(roles and permissions): change title for space --- .../impl/permissions/ChangeRoomPermissionsPresenter.kt | 4 +++- .../impl/permissions/ChangeRoomPermissionsState.kt | 1 + .../impl/permissions/ChangeRoomPermissionsView.kt | 8 ++++---- .../impl/src/main/res/values/localazy.xml | 7 ++++--- .../roomdetails/impl/src/main/res/values/localazy.xml | 6 +++--- tools/localazy/config.json | 1 + 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt index 02966c79a3..b36d1c0bc9 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsPresenter.kt @@ -35,6 +35,7 @@ class ChangeRoomPermissionsPresenter( ) : Presenter { companion object { private fun itemsForSection(section: RoomPermissionsSection) = when (section) { + RoomPermissionsSection.SpaceDetails, RoomPermissionsSection.RoomDetails -> persistentListOf( RoomPermissionType.ROOM_NAME, RoomPermissionType.ROOM_AVATAR, @@ -53,9 +54,10 @@ class ChangeRoomPermissionsPresenter( private fun RoomPermissionsSection.shouldShow(isSpace: Boolean): Boolean { return when (this) { - RoomPermissionsSection.RoomDetails -> true + RoomPermissionsSection.RoomDetails -> !isSpace RoomPermissionsSection.MembershipModeration -> true RoomPermissionsSection.MessagesAndContent -> !isSpace + RoomPermissionsSection.SpaceDetails -> isSpace } } diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt index b1032e5fac..c609b4a135 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsState.kt @@ -48,6 +48,7 @@ data class ChangeRoomPermissionsState( } enum class RoomPermissionsSection { + SpaceDetails, RoomDetails, MessagesAndContent, MembershipModeration, diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt index babe682717..165ebd0528 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/permissions/ChangeRoomPermissionsView.kt @@ -74,7 +74,6 @@ fun ChangeRoomPermissionsView( selectedOption = state.selectedRoleForType(permissionType), options = SelectableRole.entries.toImmutableList(), onSelectOption = { role -> - println("Selected $role for $permissionType") state.eventSink( ChangeRoomPermissionsEvent.ChangeMinimumRoleForAction( action = permissionType, @@ -114,9 +113,10 @@ fun ChangeRoomPermissionsView( @Composable private fun titleForSection(section: RoomPermissionsSection): String = when (section) { - RoomPermissionsSection.RoomDetails -> stringResource(R.string.screen_room_change_permissions_room_details) - RoomPermissionsSection.MessagesAndContent -> stringResource(R.string.screen_room_change_permissions_messages_and_content) - RoomPermissionsSection.MembershipModeration -> stringResource(R.string.screen_room_change_permissions_member_moderation) + RoomPermissionsSection.SpaceDetails -> stringResource(R.string.screen_room_roles_and_permissions_space_details) + RoomPermissionsSection.RoomDetails -> stringResource(R.string.screen_room_roles_and_permissions_room_details) + RoomPermissionsSection.MessagesAndContent -> stringResource(R.string.screen_room_roles_and_permissions_messages_and_content) + RoomPermissionsSection.MembershipModeration -> stringResource(R.string.screen_room_roles_and_permissions_member_moderation) } @Composable diff --git a/features/rolesandpermissions/impl/src/main/res/values/localazy.xml b/features/rolesandpermissions/impl/src/main/res/values/localazy.xml index 43f6dc10f8..56c335f1c1 100644 --- a/features/rolesandpermissions/impl/src/main/res/values/localazy.xml +++ b/features/rolesandpermissions/impl/src/main/res/values/localazy.xml @@ -9,10 +9,10 @@ "Messages and content" "Admins and moderators" "Remove people and decline requests to join" - "Change room avatar" + "Change avatar" "Room details" - "Change room name" - "Change room topic" + "Change name" + "Change topic" "Send messages" "Edit Admins" "You will not be able to undo this action. You are promoting the user to have the same power level as you." @@ -66,5 +66,6 @@ "Reset permissions?" "Roles" "Room details" + "Space details" "Roles and permissions" diff --git a/features/roomdetails/impl/src/main/res/values/localazy.xml b/features/roomdetails/impl/src/main/res/values/localazy.xml index 814f352abd..38f3be744f 100644 --- a/features/roomdetails/impl/src/main/res/values/localazy.xml +++ b/features/roomdetails/impl/src/main/res/values/localazy.xml @@ -14,10 +14,10 @@ "Messages and content" "Admins and moderators" "Remove people and decline requests to join" - "Change room avatar" + "Change avatar" "Room details" - "Change room name" - "Change room topic" + "Change name" + "Change topic" "Send messages" "Edit Admins" "You will not be able to undo this action. You are promoting the user to have the same power level as you." diff --git a/tools/localazy/config.json b/tools/localazy/config.json index 4f57a9a822..39d63484a9 100644 --- a/tools/localazy/config.json +++ b/tools/localazy/config.json @@ -371,6 +371,7 @@ "includeRegex" : [ "screen_room_change_.*", "screen_room_roles_.*", + "screen\\.room_roles_and_permissions\\..*", "screen_room_member_list.*" ] } From 462d596177499a2f4066be6be404ed2198d9fb79 Mon Sep 17 00:00:00 2001 From: ElementBot Date: Wed, 5 Nov 2025 20:58:34 +0000 Subject: [PATCH 11/16] Update screenshots --- ...es.changeroommemberroles.impl_ChangeRolesView_Day_9_en.png | 3 --- ....changeroommemberroles.impl_ChangeRolesView_Night_9_en.png | 3 --- ...references.impl.advanced_AdvancedSettingsViewDark_0_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_1_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_2_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_3_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_4_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_5_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_6_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_7_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_8_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_0_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_1_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_2_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_3_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_4_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_5_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_6_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_7_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_8_en.png | 4 ++-- ...ns.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png | 3 +++ ...ns.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png | 3 +++ ...ns.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png | 3 +++ ...ns.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png | 3 +++ ...ns.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png | 3 +++ ....impl.permissions_ChangeRoomPermissionsView_Night_0_en.png | 3 +++ ....impl.permissions_ChangeRoomPermissionsView_Night_1_en.png | 3 +++ ....impl.permissions_ChangeRoomPermissionsView_Night_2_en.png | 3 +++ ....impl.permissions_ChangeRoomPermissionsView_Night_3_en.png | 3 +++ ....impl.permissions_ChangeRoomPermissionsView_Night_4_en.png | 3 +++ ...lesandpermissions.impl.roles_ChangeRolesView_Day_0_en.png} | 0 ...esandpermissions.impl.roles_ChangeRolesView_Day_10_en.png} | 0 ...esandpermissions.impl.roles_ChangeRolesView_Day_11_en.png} | 0 ...esandpermissions.impl.roles_ChangeRolesView_Day_12_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_1_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_2_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_3_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_4_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_5_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_6_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_7_en.png} | 0 ...lesandpermissions.impl.roles_ChangeRolesView_Day_8_en.png} | 0 ...olesandpermissions.impl.roles_ChangeRolesView_Day_9_en.png | 3 +++ ...sandpermissions.impl.roles_ChangeRolesView_Night_0_en.png} | 0 ...andpermissions.impl.roles_ChangeRolesView_Night_10_en.png} | 0 ...andpermissions.impl.roles_ChangeRolesView_Night_11_en.png} | 0 ...andpermissions.impl.roles_ChangeRolesView_Night_12_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_1_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_2_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_3_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_4_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_5_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_6_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_7_en.png} | 0 ...sandpermissions.impl.roles_ChangeRolesView_Night_8_en.png} | 0 ...esandpermissions.impl.roles_ChangeRolesView_Night_9_en.png | 3 +++ ...ions.impl.roles_PendingMemberRowWithLongName_Day_0_en.png} | 0 ...ns.impl.roles_PendingMemberRowWithLongName_Night_0_en.png} | 0 ...permissions.impl.root_RolesAndPermissionsView_Day_0_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_1_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_2_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_3_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_4_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_5_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_6_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_7_en.png | 3 +++ ...permissions.impl.root_RolesAndPermissionsView_Day_8_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_0_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_1_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_2_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_3_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_4_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_5_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_6_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_7_en.png | 3 +++ ...rmissions.impl.root_RolesAndPermissionsView_Night_8_en.png | 3 +++ ...issions.permissions_ChangeRoomPermissionsView_Day_0_en.png | 3 --- ...issions.permissions_ChangeRoomPermissionsView_Day_1_en.png | 3 --- ...issions.permissions_ChangeRoomPermissionsView_Day_2_en.png | 3 --- ...issions.permissions_ChangeRoomPermissionsView_Day_3_en.png | 3 --- ...issions.permissions_ChangeRoomPermissionsView_Day_4_en.png | 3 --- ...issions.permissions_ChangeRoomPermissionsView_Day_5_en.png | 3 --- ...issions.permissions_ChangeRoomPermissionsView_Day_6_en.png | 3 --- ...sions.permissions_ChangeRoomPermissionsView_Night_0_en.png | 3 --- ...sions.permissions_ChangeRoomPermissionsView_Night_1_en.png | 3 --- ...sions.permissions_ChangeRoomPermissionsView_Night_2_en.png | 3 --- ...sions.permissions_ChangeRoomPermissionsView_Night_3_en.png | 3 --- ...sions.permissions_ChangeRoomPermissionsView_Night_4_en.png | 3 --- ...sions.permissions_ChangeRoomPermissionsView_Night_5_en.png | 3 --- ...sions.permissions_ChangeRoomPermissionsView_Night_6_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_0_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_1_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_2_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_3_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_4_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_5_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_6_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_7_en.png | 3 --- ...l.rolesandpermissions_RolesAndPermissionsView_Day_8_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_0_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_1_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_2_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_3_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_4_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_5_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_6_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_7_en.png | 3 --- ...rolesandpermissions_RolesAndPermissionsView_Night_8_en.png | 3 --- ...mponents.preferences_PreferenceDropdown_Preferences_en.png | 4 ++-- 109 files changed, 128 insertions(+), 140 deletions(-) delete mode 100644 tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_9_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_9_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_0_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_0_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_10_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_10_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_11_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_11_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_12_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_12_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_1_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_1_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_2_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_2_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_3_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_3_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_4_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_4_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_5_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_5_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_6_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_6_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_7_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_7_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Day_8_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Day_8_en.png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_9_en.png rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_0_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_0_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_10_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_10_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_11_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_11_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_12_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_12_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_1_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_1_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_2_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_2_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_3_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_3_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_4_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_4_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_5_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_5_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_6_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_6_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_7_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_7_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_ChangeRolesView_Night_8_en.png => features.rolesandpermissions.impl.roles_ChangeRolesView_Night_8_en.png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_9_en.png rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_PendingMemberRowWithLongName_Day_0_en.png => features.rolesandpermissions.impl.roles_PendingMemberRowWithLongName_Day_0_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{features.changeroommemberroles.impl_PendingMemberRowWithLongName_Night_0_en.png => features.rolesandpermissions.impl.roles_PendingMemberRowWithLongName_Night_0_en.png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_0_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_1_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_2_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_3_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_4_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_5_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_6_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_7_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_8_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_0_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_1_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_2_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_3_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_4_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_5_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_6_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_7_en.png create mode 100644 tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_8_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_8_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_9_en.png b/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_9_en.png deleted file mode 100644 index 9be427d4b6..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_9_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4885040583de68748dc10cf85e0f395f7ae8a0ef08d8aeed14826fafec22990 -size 65024 diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_9_en.png b/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_9_en.png deleted file mode 100644 index ccb2d31d48..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_9_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac14dd774fca2924f599bd831d4fcad9931011174108bae5da1bcf8a5db6c4cf -size 64688 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png index 7bfb23035b..b4caf353fa 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d20f0962fb92b64b0e8a507f2c30428d0349c176d1453ed423a6c447d350459e -size 47267 +oid sha256:5116af838229fd1d17eb6d63ffdde82e90b75ff01000f8bf6f83edb982555443 +size 47358 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png index d76c93c920..d14d977afe 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d39dbdbed4a1260170fc1a148860533320413efb367a5d31bc4111086378529c -size 47157 +oid sha256:4d2f0f54ecb417dcc7ebb2e125b61e9e01f682dd7fea0eabb729c243387b6004 +size 47247 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png index 9915cd5435..7791c3dada 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ed87edce4fc8ea22a2ba6d666bbaf21b14a359e2a3eec828e2edede23d5d1b1e -size 47146 +oid sha256:5ef498d98d519dfe496622ec3ec7289ef5e636bb4c8ce4512cde1997fba3247d +size 47237 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png index 49d0d774af..d0b1a44c01 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d446944a0408921659ef954036211fe341e8b0529b6e0c7ecc315998e14b8f43 -size 47136 +oid sha256:665aa1c40622f38b0abe12d763c260a07011f7c32e47442d44477d2fead32e6c +size 47224 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png index 1f32e3cb20..3abb98e008 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61706045ca364252d30d9a36d276b83aeee5e4be2552fbd7a97be9378ebc3a37 -size 46979 +oid sha256:6df36eb76909634d7ef59d9fa44edc1aa1f87412b8524ec2a9f3c26554e89065 +size 47069 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png index 6a6f712306..a45ca7d865 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:23a53698059b50b46bcbb6cedd9434aaffa77db460d7495b9306c809d90d2126 -size 47270 +oid sha256:64e6997a02c70f17866e90f19cea2878844738748ce9ad60f85fbf04a3f35d8a +size 47360 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png index 0f40386837..dee1f01854 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:779879fc4b976584305eca916e42bd3cf1b6c08bf9e857bf842ec4cd537d7c3a -size 46924 +oid sha256:eae7e14242722e0b65e6bfe02f0d8c54e4581113c19888acfdbfd84b260ba53a +size 47013 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png index a1b6e813b0..6e7bf498c1 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2ec601dec7eb57e457ddb351fbe8f966b8f51e3dde12f3e7130e8229f4ed3079 -size 46559 +oid sha256:56d937d008aa6fea8b4dadc12eb313f217b15b2d7458d5d3b4b0af77918988fc +size 46648 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png index 8934c11f27..a293d0038e 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c647eb273c63b6e28f91a87d9e85f00c83d7f0cb6748965cd0c1391cac7fe918 -size 52991 +oid sha256:b1c44eb7d614c5db5c48a75cf483ee9364aa2113dffd79faf116835a21519b79 +size 53087 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png index f7d1a84a24..2de7d822fa 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6ec2983e926cff79f13fa0851c4c7dd6c4fd0433f19c774136cef5cdd0ea8b52 -size 48932 +oid sha256:cd31762cef1c2d84318d3fcb63f08c3b544368c59643d6ea54174e9ca6e7191b +size 48985 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png index d742e90a11..167e63caf4 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c382988ddf0643e1c6e78aee175fed9232302a4bd6d10e078c3fdd74d471904b -size 48813 +oid sha256:7789e460d69fa17b7a412a456930f2383c0ebb84a7a603c7443f0e7b66f2be0e +size 48866 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png index eb2d20f165..96a27a4fc8 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b68b299ef3917fb201712817b056a3c328d9f0c4cee5e0216de49d1ee962ebe5 -size 48830 +oid sha256:2fddfcdd50bf43eec8b0c5739067609aede15b6541de75282274803464d5ffc4 +size 48885 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png index dc166a004a..056e1a8e21 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:26ef88a68a260fa9096651badadd93c4ce69d150add269cbdfd303b3289de629 -size 48814 +oid sha256:85c09edfa3db27e686dceb7aa21e427a25cdc4860669cb716a820b8ebf8a255e +size 48868 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png index 319eb1d0b0..fdfaa42df9 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c56cbb0fbc5aadecac6cdd23fee7ee93e18843c7923b0d73dbc90468c29a217 -size 48735 +oid sha256:d694ba80e6faeb81a195064e59d3febe4630df718124e7ee842ba1aad2634117 +size 48789 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png index 19460ca25f..2e3b8e8deb 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:76c25bf891f2d649c3822448d288cc77a1f50626d58fe381268df89b346dee6a -size 48932 +oid sha256:4b556d0d99e4e93a736e25f79df51bd02f465192496463d0480081105de1077c +size 48987 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png index e992029a8b..5c4df596af 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3314c594d699f376b5f06fd7da21ce318b5fee331c2e104ce04bbee59b5ba4fc -size 48753 +oid sha256:8e285f7f4435053db05f95dee11bf3c46f4649c1f6a2f6e18ad91e652f0725ac +size 48809 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png index 5e995f6e3f..1bddc35de9 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:97111fd3e96fc9007b271a9ecbb3571034ea79fc7998b12bc854fcc43b6d31b4 -size 48438 +oid sha256:607061d3f293b5d575b236cd24f8d13b3d2db6dbd76e21710b698ccdee38541b +size 48492 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png index 6a161b9137..859e412c51 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:704dba07bf3c49e8ba0f2cf62368c2ead4f27e6708572b4c38b5fffc89b89c26 -size 55181 +oid sha256:adfc7ec5289fbd2bcdc3b6be31b1644165f24bd422957bb038b381b57d309e98 +size 55242 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png new file mode 100644 index 0000000000..abe319f714 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9043007191252fac22ab58a635e0c59d96edcba741fccf9bb9812889eb15ca24 +size 60259 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png new file mode 100644 index 0000000000..282b3fc89e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cadaea0794b81e28b03c84b4331d2dd11df6cff63344e1e2561de9e3a1450c23 +size 60178 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png new file mode 100644 index 0000000000..5823a4adec --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f55bfa9823ab3480ed846e137ed7e1fa1f3a0011ef8034458ac2baa4261cd7e8 +size 52084 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png new file mode 100644 index 0000000000..ca5dd4e9c0 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5ce4f5ac003767c68a89465e1eb396f7d5fb67f2157a4e00a56591820666644 +size 49522 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png new file mode 100644 index 0000000000..a14ec8aad7 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c5692d76f33a622452727fc4b1d1438cb608038f1cb0b6ba86a7b8e98f143db +size 56335 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png new file mode 100644 index 0000000000..c5b0cafa86 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:644b0d4d7c9ac619fa277086071a35d08f24408816a73b5293acde325d06373b +size 58568 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png new file mode 100644 index 0000000000..70aa7e518e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a62487bdcd023634fbb7a81642821dbca4b813798aae1dfaa4d5b852d7e03fca +size 58470 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png new file mode 100644 index 0000000000..8f56a177e4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08d28320336e02d0db2d4eb5b20793879d54e52f3dbb287f6399efcad5dbc47e +size 50565 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png new file mode 100644 index 0000000000..a0a2e1a701 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64bc6edeffdcec9381c9049383d72ed4f5fe785de3f0b24d9f7a32466a26f24b +size 47347 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png new file mode 100644 index 0000000000..b4dd57cfa6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45da36f66abead151d7634c2c554862db03948eede77adf1f397fead1429e67e +size 54151 diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_0_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_10_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_10_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_11_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_11_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_12_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_12_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_12_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_12_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_1_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_2_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_3_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_4_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_5_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_6_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_7_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_7_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Day_8_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_9_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_9_en.png new file mode 100644 index 0000000000..d1b21ebee2 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Day_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:393bf3509a833f7af78a57e546ce6d35ca3bef4d4523ff12af657d1c573b87c5 +size 61190 diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_0_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_10_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_10_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_10_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_10_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_11_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_11_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_11_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_11_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_12_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_12_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_12_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_12_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_1_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_1_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_1_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_2_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_2_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_2_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_3_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_3_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_3_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_4_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_4_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_4_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_5_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_5_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_5_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_6_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_6_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_6_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_7_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_7_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_7_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_8_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_ChangeRolesView_Night_8_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_8_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_9_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_9_en.png new file mode 100644 index 0000000000..f55e0ac7a6 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_ChangeRolesView_Night_9_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37a79b2f5d6aedaef2dec74defd0f2a17af49239058a606f0785e82e56d833ec +size 61887 diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_PendingMemberRowWithLongName_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_PendingMemberRowWithLongName_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_PendingMemberRowWithLongName_Day_0_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_PendingMemberRowWithLongName_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_PendingMemberRowWithLongName_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_PendingMemberRowWithLongName_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/features.changeroommemberroles.impl_PendingMemberRowWithLongName_Night_0_en.png rename to tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.roles_PendingMemberRowWithLongName_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_0_en.png new file mode 100644 index 0000000000..7ba2742dab --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b64f4c2c68338cd9acc6e2644b41eb3d30463e6ee5da2eba0d93b1ff2340a563 +size 28791 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_1_en.png new file mode 100644 index 0000000000..56f241f10c --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6be26ff8ed8f9907fbab1778a0b112c649e8bd8059f0ae407b52634f9fe4b136 +size 30630 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_2_en.png new file mode 100644 index 0000000000..83a633fc78 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d57be3aa2c919a957f99a6b8da269fae5791dd5ffea4dd2113e91ee82796c35 +size 59091 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_3_en.png new file mode 100644 index 0000000000..fe7577ec55 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f55f5714eb073ad4649ff9b5d2924239db6063701cdca61941a970a5f7f78197 +size 28038 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_4_en.png new file mode 100644 index 0000000000..29e8c35dfe --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6dcb28cfda314fa41d86ae47c6e9e7275798515b735cf4ebfb51c26d4412b4ad +size 27047 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_5_en.png new file mode 100644 index 0000000000..d581dc2637 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7e2b3d4d2aa0349db9641afd230cf3c532f11bd05c2fd821657a5665190324f +size 37175 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_6_en.png new file mode 100644 index 0000000000..fe7577ec55 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f55f5714eb073ad4649ff9b5d2924239db6063701cdca61941a970a5f7f78197 +size 28038 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_7_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_7_en.png new file mode 100644 index 0000000000..cba28447f4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0b069df8c405ef8556a0cbe9a68fae9788ba55eaf940a11c1b20b1732d79114 +size 27344 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_8_en.png new file mode 100644 index 0000000000..16aae512d1 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Day_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfc46b428fcd6950911089d1f09a7cb6f6aa5009d2ce39f4b00ce706a3a41fb3 +size 27175 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_0_en.png new file mode 100644 index 0000000000..58c89081f0 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:320d0da30157930114f60d10a1da565780f9869340dc9f0b71b70552e9b8bd0c +size 27990 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_1_en.png new file mode 100644 index 0000000000..d69a5bfb78 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_1_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0c78fbc29259d21b5f66d86bb943153d4a1f35409785629306a672234493dfd +size 29741 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_2_en.png new file mode 100644 index 0000000000..ceff3d7f25 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_2_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e8141af3945e72cbdedd38062d9606c4a1646fd75ce169cf5aec9369968404d +size 56721 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_3_en.png new file mode 100644 index 0000000000..367f6cbce4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_3_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af38118f74d11e03a7cc6776aa64d9955b9d494a38f21396393eea0b7e133f83 +size 26464 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_4_en.png new file mode 100644 index 0000000000..2fc5472b0d --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_4_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c42bb6f9615803253f395759dc6d86c940131fec23f6c6f1d83cef9375452cd9 +size 25071 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_5_en.png new file mode 100644 index 0000000000..e0a8bfadda --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_5_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75747b889fd518a514c5058b86676c89c68ff9557505b39ee9ea04b62a83b8ab +size 34616 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_6_en.png new file mode 100644 index 0000000000..367f6cbce4 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_6_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af38118f74d11e03a7cc6776aa64d9955b9d494a38f21396393eea0b7e133f83 +size 26464 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_7_en.png new file mode 100644 index 0000000000..dec47a2fcb --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_7_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c82ffeae6eb17e27996357e1538ade2b962ecb6b6ccda8a6e5535a8b98f991c +size 25386 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_8_en.png new file mode 100644 index 0000000000..9e823c8497 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.root_RolesAndPermissionsView_Night_8_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a653512dc37cbe52f5623278358b643e9c8e6c706a1a3f6999a579b6d8ceecc +size 26423 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en.png deleted file mode 100644 index de3f3a93b9..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80f4f24de2db8c0b1462a6dd77cb138132dc37aa1cc000508d0cf66129fa486f -size 39962 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en.png deleted file mode 100644 index 9762549b31..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_1_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80b6d0cef1f4709ab0f519c3168d9e0f9b7a7ffff8f7d4a8fbc5b10653b33042 -size 36279 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en.png deleted file mode 100644 index 863e6bdf1c..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_2_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13095117980b3b3dde8df1b2404bad43187d17cdcaf51805cf45baa684bb5086 -size 46677 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en.png deleted file mode 100644 index d07b5f214e..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_3_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e32a7a1ec92aa005734e877ff995bc40420710e80eea350ffbc1530095ad48c -size 39857 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en.png deleted file mode 100644 index 42da0d9e8c..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_4_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e89506e845b0a9d80831b1f65fa3793aee784d5a02ab69241a26384d9d43251 -size 36292 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en.png deleted file mode 100644 index df10b8c6e2..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_5_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79b02cbdef9a555911ba7e775642b08473f271a92e045d4f7c141ccfe63170ca -size 37204 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en.png deleted file mode 100644 index 6107455bd9..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Day_6_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:785820fd67e137c5347060cf4d07dda5dc24e2349c8bb2a418895fc6ce9069b1 -size 44079 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en.png deleted file mode 100644 index f2691ad84f..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:61e3c25edb23657021113a1201408200f85f0b2dcba9e96208a7125027cf642f -size 38699 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en.png deleted file mode 100644 index 5e779061e0..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_1_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:11738c6de6751b37430db66d377478d38b7ac241c14d7bb2ab8b48206908fbda -size 35175 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en.png deleted file mode 100644 index 58226e7852..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_2_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a15405c5998265da00876bac43ab2d70fca74fab916d2014207b46997b0fed5 -size 45030 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en.png deleted file mode 100644 index 2d15a73061..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_3_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f524740b14ffe3b5a70983b42c308cdcd1d7bfe7dbd0738aed3e79dba4673bbe -size 38559 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en.png deleted file mode 100644 index 2fc07b3421..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_4_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c25628ffa6457a573b8678ab95ee7bb80315ba8a43d20a16e3d7c03baab7ea9f -size 35201 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en.png deleted file mode 100644 index 56520adc2a..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_5_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab0970def368ef59ecfbc1b7cec7e0dcdd8156a6f642701acf9dd54527080568 -size 35440 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en.png deleted file mode 100644 index 7faaed8c07..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions.permissions_ChangeRoomPermissionsView_Night_6_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:742d98c87eaff31e460614f15ec4a5f03797669378099b5be3e0785320d0a0d1 -size 42171 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en.png deleted file mode 100644 index 1acc4da150..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f1129fe5ebc6cebbba907ca15e92b33d5ee645c431d0022758bfc5d6e28bf69e -size 41003 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en.png deleted file mode 100644 index e906d843c7..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_1_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe1c01cc7c9ea9f50a0413505b516a86831416416c82488a9339785c89b3e0d3 -size 42769 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en.png deleted file mode 100644 index cf46f94231..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_2_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d08941b66dd884cb3eb73fea0ccbf535ab2b42a46fb1ac83d220832e42b486a6 -size 59083 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en.png deleted file mode 100644 index dccc6a1f32..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_3_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:09ca684dc0f03aa68e658c4f1c780dde6d8c1739255899936f320595098c2c80 -size 39542 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en.png deleted file mode 100644 index 97b5326743..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_4_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e71878e1dd445a58b3d79db5863ec4449729bf0bb1549c09848923fb9bf052d9 -size 38390 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en.png deleted file mode 100644 index d25877daf2..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_5_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:558ba83131a9d79e32e0c5566a170e1c62b5bccbb4ad23f9bc58e271ea3f89e9 -size 48462 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en.png deleted file mode 100644 index dccc6a1f32..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_6_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:09ca684dc0f03aa68e658c4f1c780dde6d8c1739255899936f320595098c2c80 -size 39542 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en.png deleted file mode 100644 index b1912920cb..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_7_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77f4b8e6ec426104ebe81308b2cf0ad111e3fbfa07c2086a2199ab8e9e952e8a -size 38719 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_8_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_8_en.png deleted file mode 100644 index 4793c85c21..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Day_8_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9000726c2e4e6115bb18f09193d84d4ab1948e70e35f27d0bfa514be96584510 -size 39123 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en.png deleted file mode 100644 index aee278ece4..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d009d8ede606e8cd4bc150a292aac5c58c38195b188412a55df686ef74738e08 -size 39747 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en.png deleted file mode 100644 index 62e2a03cf7..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_1_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa618f575a11ed7c8521d754f54f41745ede3f2f9f95b242d9f04f641446c581 -size 41500 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en.png deleted file mode 100644 index e6fe537947..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_2_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b0063c4f776093e3c53beb164bd21d5ca0c32a865b10e848826a6f7859267f00 -size 56716 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en.png deleted file mode 100644 index 147635d0f9..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_3_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e47c40c3173a80230c88f7e242f0236e6de3ed255552eed2d54a71fb136aa842 -size 37809 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en.png deleted file mode 100644 index 98e04f83fe..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_4_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ae08d2f3f6bc8b5364d3b9ea3584c21efe3180001d0babf209c6ef3fbf41e9a -size 35871 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en.png deleted file mode 100644 index 5a7c8850fd..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_5_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:01fe728028fd86ccaf8ff7b08eb0b1b1e21ad336da97f39d818304e769cd65aa -size 45374 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en.png deleted file mode 100644 index 147635d0f9..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_6_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e47c40c3173a80230c88f7e242f0236e6de3ed255552eed2d54a71fb136aa842 -size 37809 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en.png deleted file mode 100644 index c2c1b2c9f2..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_7_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7ae5371560ae6a92f0fb6537d8359c1bc40a6c43e3f12fd365019cbb2debe72 -size 36210 diff --git a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_8_en.png b/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_8_en.png deleted file mode 100644 index 1d42c39f20..0000000000 --- a/tests/uitests/src/test/snapshots/images/features.roomdetails.impl.rolesandpermissions_RolesAndPermissionsView_Night_8_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5c945af810f3bde63d99284b97b127a10b7ec222a560a406284b4dac2b0e3f9 -size 38022 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png index be32cb24a3..9e7bb7a63e 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f02ee83a49656553dd59648442bf4d558f6257fff3b30b768673d531cbe10150 -size 30928 +oid sha256:9af7f91767070914af81742b8f9d9a85c68e5aa818d19b7981527eb7e4360ec4 +size 31366 From de4f0e7ce34b91324278c0dde85f933ede70bd91 Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 6 Nov 2025 10:50:46 +0100 Subject: [PATCH 12/16] design: improve PreferenceDropdown --- .../components/preferences/PreferenceDropdown.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt index 389dc6c15b..fd76ef4c28 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/preferences/PreferenceDropdown.kt @@ -10,8 +10,10 @@ package io.element.android.libraries.designsystem.components.preferences import androidx.annotation.DrawableRes +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable @@ -22,6 +24,8 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme @@ -87,6 +91,7 @@ fun PreferenceDropdown( onSelectOption = onSelectOption, expanded = isDropdownExpanded, onExpandedChange = { isDropdownExpanded = it }, + modifier = Modifier.fillMaxSize(0.3f) ) } ), @@ -117,12 +122,16 @@ private fun DropdownTrailingContent( Row( modifier = modifier, verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.End, ) { Text( text = selectedOption?.getText().orEmpty(), maxLines = 1, style = ElementTheme.typography.fontBodyMdRegular, color = ElementTheme.colors.textSecondary, + overflow = TextOverflow.Ellipsis, + textAlign = TextAlign.End, + modifier = Modifier.weight(1f), ) Icon( imageVector = CompoundIcons.ChevronDown(), From ca1f799983802d5d9b7788455df13f125e28b668 Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 6 Nov 2025 10:58:51 +0100 Subject: [PATCH 13/16] misc: introduce @RoomCoroutineScope --- .../di/annotations/RoomCoroutineScope.kt | 18 +++++++++++++ .../libraries/matrix/impl/di/RoomModule.kt | 26 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/RoomCoroutineScope.kt create mode 100644 libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/di/RoomModule.kt diff --git a/libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/RoomCoroutineScope.kt b/libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/RoomCoroutineScope.kt new file mode 100644 index 0000000000..eee5115df9 --- /dev/null +++ b/libraries/di/src/main/kotlin/io/element/android/libraries/di/annotations/RoomCoroutineScope.kt @@ -0,0 +1,18 @@ +/* + * 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.di.annotations + +import dev.zacsweers.metro.Qualifier + +/** + * Qualifies a [CoroutineScope] object which represents the base coroutine scope to use for an active room. + */ +@Retention(AnnotationRetention.RUNTIME) +@MustBeDocumented +@Qualifier +annotation class RoomCoroutineScope diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/di/RoomModule.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/di/RoomModule.kt new file mode 100644 index 0000000000..9fd9f7eade --- /dev/null +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/di/RoomModule.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2023, 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.di + +import dev.zacsweers.metro.BindingContainer +import dev.zacsweers.metro.ContributesTo +import dev.zacsweers.metro.Provides +import io.element.android.libraries.di.RoomScope +import io.element.android.libraries.di.annotations.RoomCoroutineScope +import io.element.android.libraries.matrix.api.room.BaseRoom +import kotlinx.coroutines.CoroutineScope + +@BindingContainer +@ContributesTo(RoomScope::class) +object RoomModule { + @RoomCoroutineScope + @Provides + fun providesSessionCoroutineScope(room: BaseRoom): CoroutineScope { + return room.roomCoroutineScope + } +} From 5097ac15718dd5669a7ec0a5903a1216da90cd2d Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 6 Nov 2025 10:59:24 +0100 Subject: [PATCH 14/16] change(roles and permissions): use @RoomCoroutineScope instead of local scope --- .../impl/roles/ChangeRolesPresenter.kt | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt index e2049336a2..87a659f7ce 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt @@ -15,7 +15,6 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.produceState import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import dev.zacsweers.metro.Assisted @@ -27,6 +26,7 @@ import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.coroutine.CoroutineDispatchers import io.element.android.libraries.designsystem.theme.components.SearchBarResultState +import io.element.android.libraries.di.annotations.RoomCoroutineScope import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.room.JoinedRoom import io.element.android.libraries.matrix.api.room.RoomMember @@ -41,12 +41,10 @@ import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.toImmutableList import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext @AssistedInject class ChangeRolesPresenter( @@ -54,6 +52,7 @@ class ChangeRolesPresenter( private val room: JoinedRoom, private val dispatchers: CoroutineDispatchers, private val analyticsService: AnalyticsService, + @RoomCoroutineScope private val roomCoroutineScope: CoroutineScope, ) : Presenter { @AssistedFactory fun interface Factory { @@ -62,7 +61,6 @@ class ChangeRolesPresenter( @Composable override fun present(): ChangeRolesState { - val coroutineScope = rememberCoroutineScope() val dataSource = remember { RoomMemberListDataSource(room, dispatchers) } var query by rememberSaveable { mutableStateOf(null) } var searchActive by rememberSaveable { mutableStateOf(false) } @@ -145,7 +143,7 @@ class ChangeRolesPresenter( saveState.value = AsyncAction.ConfirmingNoParams } !saveState.value.isLoading() -> { - coroutineScope.save(usersWithRole.value, selectedUsers, saveState) + roomCoroutineScope.save(usersWithRole.value, selectedUsers, saveState) } } } @@ -217,11 +215,7 @@ class ChangeRolesPresenter( } .onSuccess { // Asynchronously reload the room members - launch { - withContext(NonCancellable) { - room.updateMembers() - } - } + launch { room.updateMembers() } saveState.value = AsyncAction.Success(true) } } From 155d10668a0f33c0dcb87c1df8a8aec5ece4c4a9 Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 6 Nov 2025 13:47:52 +0100 Subject: [PATCH 15/16] quality: fix more tests --- .../impl/roles/ChangeRolesPresenter.kt | 1 - .../impl/roles/ChangeRolesPresenterTest.kt | 28 +++++-------------- .../test/FakeRolesAndPermissionsEntryPoint.kt | 19 +++++++++++++ .../impl/DefaultRoomDetailsEntryPointTest.kt | 2 ++ 4 files changed, 28 insertions(+), 22 deletions(-) create mode 100644 features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeRolesAndPermissionsEntryPoint.kt diff --git a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt index 87a659f7ce..719fdee2c2 100644 --- a/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt +++ b/features/rolesandpermissions/impl/src/main/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenter.kt @@ -104,7 +104,6 @@ class ChangeRolesPresenter( val roomInfo by room.roomInfoFlow.collectAsState() fun canChangeMemberRole(userId: UserId): Boolean { - // This is used to group the val currentUserRole = roomInfo.roleOf(room.sessionId) val otherUserRole = roomInfo.roleOf(userId) return currentUserRole.powerLevel > otherUserRole.powerLevel diff --git a/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenterTest.kt b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenterTest.kt index 6bcad2c4cc..4b3ed237cd 100644 --- a/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenterTest.kt +++ b/features/rolesandpermissions/impl/src/test/kotlin/io/element/android/features/rolesandpermissions/impl/roles/ChangeRolesPresenterTest.kt @@ -351,21 +351,15 @@ class ChangeRolesPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - skipItems(1) + skipItems(2) val initialState = awaitItem() assertThat(initialState.selectedUsers).hasSize(1) - initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2))) awaitItem().eventSink(ChangeRolesEvent.Save) val confirmingState = awaitItem() assertThat(confirmingState.savingState).isEqualTo(AsyncAction.ConfirmingNoParams) - confirmingState.eventSink(ChangeRolesEvent.Save) - - val loadingState = awaitItem() - assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java) - skipItems(1) - + assertThat(awaitItem().savingState).isInstanceOf(AsyncAction.Loading::class.java) assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true)) } } @@ -413,18 +407,12 @@ class ChangeRolesPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - skipItems(1) + skipItems(2) val initialState = awaitItem() assertThat(initialState.selectedUsers).hasSize(1) - initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2))) - awaitItem().eventSink(ChangeRolesEvent.Save) - - val loadingState = awaitItem() - assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java) - skipItems(1) - + assertThat(awaitItem().savingState).isInstanceOf(AsyncAction.Loading::class.java) assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true)) assertThat(analyticsService.capturedEvents.last()).isEqualTo(RoomModeration(RoomModeration.Action.ChangeMemberRole, RoomModeration.Role.Moderator)) } @@ -491,7 +479,7 @@ class ChangeRolesPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - skipItems(1) + skipItems(2) val initialState = awaitItem() assertThat(initialState.selectedUsers).hasSize(1) @@ -501,8 +489,6 @@ class ChangeRolesPresenterTest { val loadingState = awaitItem() assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java) - skipItems(1) - assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(true)) assertThat(analyticsService.capturedEvents.last()).isEqualTo(RoomModeration(RoomModeration.Action.ChangeMemberRole, RoomModeration.Role.User)) } @@ -520,7 +506,7 @@ class ChangeRolesPresenterTest { moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { - skipItems(1) + skipItems(2) val initialState = awaitItem() assertThat(initialState.selectedUsers).hasSize(1) @@ -529,7 +515,6 @@ class ChangeRolesPresenterTest { awaitItem().eventSink(ChangeRolesEvent.Save) val loadingState = awaitItem() assertThat(loadingState.savingState).isInstanceOf(AsyncAction.Loading::class.java) - skipItems(1) val failedState = awaitItem() assertThat(failedState.savingState).isInstanceOf(AsyncAction.Failure::class.java) @@ -567,5 +552,6 @@ internal fun TestScope.createChangeRolesPresenter( room = room, dispatchers = dispatchers, analyticsService = analyticsService, + roomCoroutineScope = this, ) } diff --git a/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeRolesAndPermissionsEntryPoint.kt b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeRolesAndPermissionsEntryPoint.kt new file mode 100644 index 0000000000..489f1ad3b0 --- /dev/null +++ b/features/rolesandpermissions/test/src/main/kotlin/io/element/android/features/changeroommemberroles/test/FakeRolesAndPermissionsEntryPoint.kt @@ -0,0 +1,19 @@ +/* + * Copyright 2025 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.features.changeroommemberroles.test + +import com.bumble.appyx.core.modality.BuildContext +import com.bumble.appyx.core.node.Node +import io.element.android.features.rolesandpermissions.api.RolesAndPermissionsEntryPoint +import io.element.android.tests.testutils.lambda.lambdaError + +class FakeRolesAndPermissionsEntryPoint : RolesAndPermissionsEntryPoint { + override fun createNode(parentNode: Node, buildContext: BuildContext): Node { + lambdaError() + } +} diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt index f9bc40b711..52de9aa8f1 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/DefaultRoomDetailsEntryPointTest.kt @@ -13,6 +13,7 @@ import com.bumble.appyx.testing.junit4.util.MainDispatcherRule import com.google.common.truth.Truth.assertThat import io.element.android.features.call.test.FakeElementCallEntryPoint import io.element.android.features.changeroommemberroles.test.FakeChangeRoomMemberRolesEntryPoint +import io.element.android.features.changeroommemberroles.test.FakeRolesAndPermissionsEntryPoint import io.element.android.features.knockrequests.test.FakeKnockRequestsListEntryPoint import io.element.android.features.messages.test.FakeMessagesEntryPoint import io.element.android.features.poll.test.history.FakePollHistoryEntryPoint @@ -58,6 +59,7 @@ class DefaultRoomDetailsEntryPointTest { outgoingVerificationEntryPoint = FakeOutgoingVerificationEntryPoint(), reportRoomEntryPoint = FakeReportRoomEntryPoint(), changeRoomMemberRolesEntryPoint = FakeChangeRoomMemberRolesEntryPoint(), + rolesAndPermissionsEntryPoint = FakeRolesAndPermissionsEntryPoint(), ) } val callback = object : RoomDetailsEntryPoint.Callback { From e66590061f1066196e9dfbce4d8870545bf8edd1 Mon Sep 17 00:00:00 2001 From: ElementBot Date: Thu, 6 Nov 2025 17:40:02 +0000 Subject: [PATCH 16/16] Update screenshots --- ...references.impl.advanced_AdvancedSettingsViewDark_0_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_1_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_2_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_3_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_4_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_5_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_6_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_7_en.png | 4 ++-- ...references.impl.advanced_AdvancedSettingsViewDark_8_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_0_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_1_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_2_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_3_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_4_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_5_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_6_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_7_en.png | 4 ++-- ...eferences.impl.advanced_AdvancedSettingsViewLight_8_en.png | 4 ++-- ...ns.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png | 4 ++-- ...ns.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png | 4 ++-- ...ns.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png | 4 ++-- ...ns.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png | 4 ++-- ...ns.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png | 4 ++-- ....impl.permissions_ChangeRoomPermissionsView_Night_0_en.png | 4 ++-- ....impl.permissions_ChangeRoomPermissionsView_Night_1_en.png | 4 ++-- ....impl.permissions_ChangeRoomPermissionsView_Night_2_en.png | 4 ++-- ....impl.permissions_ChangeRoomPermissionsView_Night_3_en.png | 4 ++-- ....impl.permissions_ChangeRoomPermissionsView_Night_4_en.png | 4 ++-- ...mponents.preferences_PreferenceDropdown_Preferences_en.png | 4 ++-- 29 files changed, 58 insertions(+), 58 deletions(-) diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png index b4caf353fa..ae30993ae5 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5116af838229fd1d17eb6d63ffdde82e90b75ff01000f8bf6f83edb982555443 -size 47358 +oid sha256:d986fd93989b178dc08957270a75fee126c9910a45d067ca7c3353d188b69850 +size 47377 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png index d14d977afe..e1c896297c 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d2f0f54ecb417dcc7ebb2e125b61e9e01f682dd7fea0eabb729c243387b6004 -size 47247 +oid sha256:cb5c468b4f8235595bcfb3355fa29cfd43567d51e27785357bdecb13ab1dadd9 +size 47268 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png index 7791c3dada..dc78febfda 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ef498d98d519dfe496622ec3ec7289ef5e636bb4c8ce4512cde1997fba3247d -size 47237 +oid sha256:e16ace640aa43a2d6b923a46fec94ca41e1b9ce1632cbd0319c646c08dc1b167 +size 47257 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png index d0b1a44c01..bc69773fda 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:665aa1c40622f38b0abe12d763c260a07011f7c32e47442d44477d2fead32e6c -size 47224 +oid sha256:f90e8efb79b3525fafdee503a0aa5280e1d5bf0275ea3be0e79ee323c7b03751 +size 47248 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png index 3abb98e008..3a3942319f 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6df36eb76909634d7ef59d9fa44edc1aa1f87412b8524ec2a9f3c26554e89065 -size 47069 +oid sha256:8afb2771627534be13f709b1e125d9d4ae26d4ca1a7db102b31ef14620bb45a9 +size 47089 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png index a45ca7d865..4d87b9f694 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_5_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:64e6997a02c70f17866e90f19cea2878844738748ce9ad60f85fbf04a3f35d8a -size 47360 +oid sha256:4e7b71b415175d4cae28404ca4aa361929df63fb670b9b5c86c327dd6df73ddf +size 47379 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png index dee1f01854..6ae9086f2a 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_6_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eae7e14242722e0b65e6bfe02f0d8c54e4581113c19888acfdbfd84b260ba53a -size 47013 +oid sha256:693180156b1bad6c7e0f1ef698ec8b6787912c2ca2f7d94326e2cda043ba6819 +size 47034 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png index 6e7bf498c1..fc1664cc49 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_7_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:56d937d008aa6fea8b4dadc12eb313f217b15b2d7458d5d3b4b0af77918988fc -size 46648 +oid sha256:ba1df0d1d16e51d28ecbfcc34be2d7ffb6722efd8bc6089b4befb2d79f82ce5f +size 46668 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png index a293d0038e..76ed86b02b 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewDark_8_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b1c44eb7d614c5db5c48a75cf483ee9364aa2113dffd79faf116835a21519b79 -size 53087 +oid sha256:3268b8e9c04a5a966f7d5b991299e783d6efe04cb05800ef45b2fd226b1d10bf +size 53105 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png index 2de7d822fa..b080444cda 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd31762cef1c2d84318d3fcb63f08c3b544368c59643d6ea54174e9ca6e7191b -size 48985 +oid sha256:e44bb25d897d6f4de241267c56c6e3bed1d68d3d21522c4d0200a82041ddc083 +size 48999 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png index 167e63caf4..4879d67434 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7789e460d69fa17b7a412a456930f2383c0ebb84a7a603c7443f0e7b66f2be0e -size 48866 +oid sha256:1cb9fe598d7bb977561b403e43acf2dc2ab943f17cd82aa57981c2adafdc07e7 +size 48879 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png index 96a27a4fc8..f46bf72380 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2fddfcdd50bf43eec8b0c5739067609aede15b6541de75282274803464d5ffc4 -size 48885 +oid sha256:981005ce4565843a041995c6c69cc9503a983de5df82433019fa33dc5ce3f597 +size 48896 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png index 056e1a8e21..0645a6d0b9 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:85c09edfa3db27e686dceb7aa21e427a25cdc4860669cb716a820b8ebf8a255e -size 48868 +oid sha256:8f80185f3563d3e74abd3a1cccc79fbdfe47e4cf0e3bea98130698e74d09eab4 +size 48878 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png index fdfaa42df9..a0d683dc0c 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d694ba80e6faeb81a195064e59d3febe4630df718124e7ee842ba1aad2634117 -size 48789 +oid sha256:1cc613718c250b031c8bf551996bb528956894fea2e2e98619b5f45361d6947d +size 48804 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png index 2e3b8e8deb..c611d7e93a 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_5_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b556d0d99e4e93a736e25f79df51bd02f465192496463d0480081105de1077c -size 48987 +oid sha256:badb0c35e0c1f6b3121a2469862b5559e061023513771a65ebdeb94ec7b98078 +size 49001 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png index 5c4df596af..74bc5f88d8 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_6_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e285f7f4435053db05f95dee11bf3c46f4649c1f6a2f6e18ad91e652f0725ac -size 48809 +oid sha256:aa36e842c20867e60424763ec0e2d9ed7f01030cf0525df3b0965273ad3e7e06 +size 48823 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png index 1bddc35de9..03e8601f97 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_7_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:607061d3f293b5d575b236cd24f8d13b3d2db6dbd76e21710b698ccdee38541b -size 48492 +oid sha256:6f9a0affa7a07696ce1a0be56e1264b8b7213dd1fa5627b6af3307ba9ebaca36 +size 48508 diff --git a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png index 859e412c51..8f10026eed 100644 --- a/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png +++ b/tests/uitests/src/test/snapshots/images/features.preferences.impl.advanced_AdvancedSettingsViewLight_8_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:adfc7ec5289fbd2bcdc3b6be31b1644165f24bd422957bb038b381b57d309e98 -size 55242 +oid sha256:d0241bcb4fec4fe87d0a161960726bc9a33987b78c4748a6670771ca3e9b7584 +size 55254 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png index abe319f714..2021890e00 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9043007191252fac22ab58a635e0c59d96edcba741fccf9bb9812889eb15ca24 -size 60259 +oid sha256:7c180424588c0856aee7ba2de7d93845c96201ecbdc4f23a00b4d671a903a980 +size 60193 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png index 282b3fc89e..dc8055d41c 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cadaea0794b81e28b03c84b4331d2dd11df6cff63344e1e2561de9e3a1450c23 -size 60178 +oid sha256:ab650b1fa9b1e7b464fb8ac9006d8d7705d9d4409093797efac24b9f4ad90afd +size 60109 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png index 5823a4adec..6c2cf322be 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f55bfa9823ab3480ed846e137ed7e1fa1f3a0011ef8034458ac2baa4261cd7e8 -size 52084 +oid sha256:d692109b09fbdd5f0c147ebbb7f352d62491f785a5266308d3a60447f91a6e00 +size 52103 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png index ca5dd4e9c0..296a9fc1fe 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5ce4f5ac003767c68a89465e1eb396f7d5fb67f2157a4e00a56591820666644 -size 49522 +oid sha256:4c6726e8db1fc6999fb43cac1614ad8179adc1191b4c1e62b8e66fc5fd70bf76 +size 49542 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png index a14ec8aad7..7acc0ebd0f 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Day_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8c5692d76f33a622452727fc4b1d1438cb608038f1cb0b6ba86a7b8e98f143db -size 56335 +oid sha256:e8519f86746bb89c6236332f83fbfc00fad488593f487f3d4148285abd5a3cf7 +size 56356 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png index c5b0cafa86..180d3ca9c7 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:644b0d4d7c9ac619fa277086071a35d08f24408816a73b5293acde325d06373b -size 58568 +oid sha256:27d7653e6052117a360dfe0e03e16875958e9f19bd56355881e9399fedcabf6c +size 58578 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png index 70aa7e518e..f0157f1ced 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a62487bdcd023634fbb7a81642821dbca4b813798aae1dfaa4d5b852d7e03fca -size 58470 +oid sha256:2fad72bab0a58f75ca68aa67442dcae44946e0c2b156139e03536dda051f4115 +size 58471 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png index 8f56a177e4..f3f664d4f6 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_2_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:08d28320336e02d0db2d4eb5b20793879d54e52f3dbb287f6399efcad5dbc47e -size 50565 +oid sha256:fd4f60534b4df7f3631d79b39e7aeb22609d967f7edef0ee5dee4ea05f1aa183 +size 50635 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png index a0a2e1a701..cb69a420a5 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_3_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:64bc6edeffdcec9381c9049383d72ed4f5fe785de3f0b24d9f7a32466a26f24b -size 47347 +oid sha256:d860c6be97aa2929fb37e25f312f14ee17312b2e201268e232fc6a5dd2621ce2 +size 47394 diff --git a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png index b4dd57cfa6..ade6d6b994 100644 --- a/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png +++ b/tests/uitests/src/test/snapshots/images/features.rolesandpermissions.impl.permissions_ChangeRoomPermissionsView_Night_4_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45da36f66abead151d7634c2c554862db03948eede77adf1f397fead1429e67e -size 54151 +oid sha256:4c4e198a9cb65a66ea0854d9fcde915ea4a70826aef3ccbb4a8e7f2d38f285fd +size 54200 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png index 9e7bb7a63e..99527960b1 100644 --- a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.preferences_PreferenceDropdown_Preferences_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9af7f91767070914af81742b8f9d9a85c68e5aa818d19b7981527eb7e4360ec4 -size 31366 +oid sha256:73749a1655e26374776fa7e8aa83582b969cd40259a5ff580710a2b19acdddb6 +size 32072