Fix typo, remove unnecessary filter of all rooms in the datasource.

This commit is contained in:
David Langley 2023-09-18 15:05:43 +01:00
parent cd456155a0
commit fb9108bfe8

View file

@ -28,7 +28,6 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.api.roomlist.RoomListService import io.element.android.libraries.matrix.api.roomlist.RoomListService
import io.element.android.libraries.matrix.api.roomlist.RoomSummary import io.element.android.libraries.matrix.api.roomlist.RoomSummary
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
@ -57,7 +56,7 @@ class RoomListDataSource @Inject constructor(
private val appScope: CoroutineScope, private val appScope: CoroutineScope,
) { ) {
init { init {
observerNotificationSettings() observeNotificationSettings()
} }
private val _filter = MutableStateFlow("") private val _filter = MutableStateFlow("")
@ -103,7 +102,7 @@ class RoomListDataSource @Inject constructor(
val filteredRooms: StateFlow<ImmutableList<RoomListRoomSummary>> = _filteredRooms val filteredRooms: StateFlow<ImmutableList<RoomListRoomSummary>> = _filteredRooms
@OptIn(FlowPreview::class) @OptIn(FlowPreview::class)
private fun observerNotificationSettings() { private fun observeNotificationSettings() {
notificationSettingsService.notificationSettingsChangeFlow notificationSettingsService.notificationSettingsChangeFlow
.debounce(0.5.seconds) .debounce(0.5.seconds)
.onEach { .onEach {
@ -140,16 +139,10 @@ class RoomListDataSource @Inject constructor(
} }
} }
private fun buildAndCacheItem(roomSummaries: List<RoomSummary>, index: Int, ): RoomListRoomSummary? { private fun buildAndCacheItem(roomSummaries: List<RoomSummary>, index: Int): RoomListRoomSummary? {
val roomListRoomSummary = when (val roomSummary = roomSummaries.getOrNull(index)) { val roomListRoomSummary = when (val roomSummary = roomSummaries.getOrNull(index)) {
is RoomSummary.Empty -> RoomListRoomSummaryPlaceholders.create(roomSummary.identifier) is RoomSummary.Empty -> RoomListRoomSummaryPlaceholders.create(roomSummary.identifier)
is RoomSummary.Filled -> { is RoomSummary.Filled -> {
// Only show a decoration if the mode is not ALL_MESSAGES
val notificationMode = if (roomSummary.details.notificationMode == RoomNotificationMode.ALL_MESSAGES) {
null
} else {
roomSummary.details.notificationMode
}
val avatarData = AvatarData( val avatarData = AvatarData(
id = roomSummary.identifier(), id = roomSummary.identifier(),
name = roomSummary.details.name, name = roomSummary.details.name,
@ -167,7 +160,7 @@ class RoomListDataSource @Inject constructor(
roomLastMessageFormatter.format(message.event, roomSummary.details.isDirect) roomLastMessageFormatter.format(message.event, roomSummary.details.isDirect)
}.orEmpty(), }.orEmpty(),
avatarData = avatarData, avatarData = avatarData,
notificationMode = notificationMode notificationMode = roomSummary.details.notificationMode,
) )
} }
null -> null null -> null