Skip to content

Commit a0ec865

Browse files
committed
Take into account hiding avatars from invitation
1 parent 81d82fb commit a0ec865

File tree

5 files changed

+19
-3
lines changed

5 files changed

+19
-3
lines changed

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spaces/HomeSpaceItemView.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,15 @@ import io.element.android.libraries.ui.strings.CommonStrings
5454
internal fun HomeSpaceItemView(
5555
spaceRoom: SpaceRoom,
5656
showUnreadIndicator: Boolean,
57+
hideAvatars: Boolean,
5758
onClick: () -> Unit,
5859
modifier: Modifier = Modifier,
5960
) {
6061
SpaceScaffoldRow(
6162
modifier = modifier,
6263
spaceRoom = spaceRoom,
6364
onClick = onClick,
65+
hideAvatars = hideAvatars,
6466
onLongClick = { },
6567
) {
6668
NameAndIndicatorRow(
@@ -151,7 +153,7 @@ private fun SpaceScaffoldRow(
151153
onClick: () -> Unit,
152154
onLongClick: () -> Unit,
153155
modifier: Modifier = Modifier,
154-
hideAvatarImage: Boolean,
156+
hideAvatars: Boolean,
155157
content: @Composable ColumnScope.() -> Unit
156158
) {
157159
val clickModifier = Modifier
@@ -173,7 +175,7 @@ private fun SpaceScaffoldRow(
173175
Avatar(
174176
avatarData = spaceRoom.getAvatarData(AvatarSize.SpaceListItem),
175177
avatarType = AvatarType.Space(),
176-
hideImage = hideAvatarImage,
178+
hideImage = hideAvatars,
177179
)
178180
Spacer(modifier = Modifier.width(16.dp))
179181
Column(
@@ -189,6 +191,7 @@ internal fun HomeSpaceItemViewPreview(@PreviewParameter(SpaceRoomProvider::class
189191
HomeSpaceItemView(
190192
spaceRoom = spaceRoom,
191193
showUnreadIndicator = false,
194+
hideAvatars = true,
192195
onClick = {},
193196
)
194197
}

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spaces/HomeSpacesPresenter.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import androidx.compose.runtime.remember
1414
import io.element.android.features.invite.api.SeenInvitesStore
1515
import io.element.android.features.invite.api.seenSpaceIds
1616
import io.element.android.libraries.architecture.Presenter
17+
import io.element.android.libraries.core.coroutine.mapState
1718
import io.element.android.libraries.matrix.api.MatrixClient
1819
import kotlinx.collections.immutable.persistentSetOf
1920
import kotlinx.collections.immutable.toPersistentSet
@@ -26,6 +27,12 @@ class HomeSpacesPresenter @Inject constructor(
2627
) : Presenter<HomeSpacesState> {
2728
@Composable
2829
override fun present(): HomeSpacesState {
30+
val hideInvitesAvatar by remember {
31+
client
32+
.mediaPreviewService()
33+
.mediaPreviewConfigFlow
34+
.mapState { config -> config.hideInviteAvatar }
35+
}.collectAsState()
2936
val spaceRooms by client.spaceService.spaceRooms.collectAsState(emptyList())
3037
val seenSpaceInvites by remember {
3138
seenInvitesStore.seenSpaceIds().map { it.toPersistentSet() }
@@ -38,6 +45,7 @@ class HomeSpacesPresenter @Inject constructor(
3845
return HomeSpacesState(
3946
spaceRooms = spaceRooms,
4047
seenSpaceInvites = seenSpaceInvites,
48+
hideInvitesAvatar = hideInvitesAvatar,
4149
eventSink = ::handleEvents,
4250
)
4351
}

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spaces/HomeSpacesState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ import kotlinx.collections.immutable.ImmutableSet
1414
data class HomeSpacesState(
1515
val spaceRooms: List<SpaceRoom>,
1616
val seenSpaceInvites: ImmutableSet<SpaceId>,
17+
val hideInvitesAvatar: Boolean,
1718
val eventSink: (HomeSpacesEvents) -> Unit,
1819
)

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spaces/HomeSpacesStateProvider.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@ open class HomeSpacesStateProvider : PreviewParameterProvider<HomeSpacesState> {
2727
internal fun aHomeSpacesState(
2828
spaceRooms: List<SpaceRoom> = aListOfSpaceRooms(),
2929
seenSpaceInvites: Set<SpaceId> = emptySet(),
30+
hideInvitesAvatar: Boolean = false,
3031
eventSink: (HomeSpacesEvents) -> Unit = {},
3132
) = HomeSpacesState(
3233
spaceRooms = spaceRooms,
3334
seenSpaceInvites = seenSpaceInvites.toImmutableSet(),
35+
hideInvitesAvatar = hideInvitesAvatar,
3436
eventSink = eventSink,
3537
)
3638

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/spaces/HomeSpacesView.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ fun HomeSpacesView(
2525
LazyColumn(modifier) {
2626
state.spaceRooms.forEach {
2727
item(it.spaceId) {
28+
val isInvitation = it.state == CurrentUserMembership.INVITED
2829
HomeSpaceItemView(
2930
spaceRoom = it,
30-
showUnreadIndicator = it.state == CurrentUserMembership.INVITED && it.spaceId !in state.seenSpaceInvites,
31+
showUnreadIndicator = isInvitation && it.spaceId !in state.seenSpaceInvites,
32+
hideAvatars = isInvitation && state.hideInvitesAvatar,
3133
onClick = {
3234
onSpaceClick(it.spaceId)
3335
}

0 commit comments

Comments
 (0)