diff --git a/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt b/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt index bc0f1e84e001f211443a8ef0aff774a12fca6a19..cf6d75c719fee3f0f64356123e2e530e5e0de76c 100644 --- a/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt +++ b/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt @@ -5,7 +5,6 @@ import org.futo.circles.core.extensions.getPowerLevelContent import org.futo.circles.core.extensions.getRoomOwner import org.futo.circles.core.extensions.isCurrentUserAbleToInvite import org.futo.circles.core.mapping.nameOrId -import org.futo.circles.core.mapping.toRoomInfo import org.futo.circles.core.model.RoomInfo import org.futo.circles.core.provider.MatrixSessionProvider import org.futo.circles.core.utils.getJoinedRoomById @@ -21,7 +20,7 @@ import org.matrix.android.sdk.api.session.room.model.RoomSummary fun RoomSummary.toJoinedGroupListItem() = JoinedGroupListItem( id = roomId, - info = toRoomInfo(), + info = RoomInfo(nameOrId(), avatarUrl), topic = topic, isEncrypted = isEncrypted, membersCount = joinedMembersCount ?: 0, diff --git a/core/src/main/java/org/futo/circles/core/feature/room/select/SelectRoomsDataSource.kt b/core/src/main/java/org/futo/circles/core/feature/room/select/SelectRoomsDataSource.kt index 72e6e1fb17c5aebaa630dc72b1ecb54286da604b..ad184af93c54ca08d72e601cadc4539f55644775 100644 --- a/core/src/main/java/org/futo/circles/core/feature/room/select/SelectRoomsDataSource.kt +++ b/core/src/main/java/org/futo/circles/core/feature/room/select/SelectRoomsDataSource.kt @@ -38,7 +38,12 @@ class SelectRoomsDataSource @Inject constructor( private fun getMergedRoomsListFlow() = combine(getRoomsFlowWithType(), selectedRoomsFlow) { rooms, selectedRooms -> - rooms.map { room -> room.toSelectableRoomListItem(selectedRooms.containsWithId(room.roomId)) } + rooms.map { room -> + room.toSelectableRoomListItem( + roomType, + selectedRooms.containsWithId(room.roomId) + ) + } }.flowOn(Dispatchers.IO).distinctUntilChanged() private fun getRoomsFlowWithType(): Flow<List<RoomSummary>> = when (roomType) { diff --git a/core/src/main/java/org/futo/circles/core/mapping/RoomSummaryMapping.kt b/core/src/main/java/org/futo/circles/core/mapping/RoomSummaryMapping.kt index d29fdeb8f2ce952629704606d272c10e7e3e46f1..76772f3e0922aba57324ac9b02bba3bf9063af79 100644 --- a/core/src/main/java/org/futo/circles/core/mapping/RoomSummaryMapping.kt +++ b/core/src/main/java/org/futo/circles/core/mapping/RoomSummaryMapping.kt @@ -1,7 +1,9 @@ package org.futo.circles.core.mapping +import org.futo.circles.core.extensions.getCircleAvatarUrl import org.futo.circles.core.extensions.getRoomOwner import org.futo.circles.core.extensions.notEmptyDisplayName +import org.futo.circles.core.model.CircleRoomTypeArg import org.futo.circles.core.model.JoinedGalleryListItem import org.futo.circles.core.model.RoomInfo import org.futo.circles.core.model.SelectableRoomListItem @@ -12,20 +14,21 @@ import org.matrix.android.sdk.api.session.user.model.User fun RoomSummary.nameOrId() = displayName.takeIf { it.isNotEmpty() } ?: name.takeIf { it.isNotEmpty() } ?: roomId -fun RoomSummary.toRoomInfo() = RoomInfo( - title = nameOrId(), - avatarUrl = avatarUrl -) - -fun RoomSummary.toSelectableRoomListItem(selected: Boolean = false) = SelectableRoomListItem( +fun RoomSummary.toSelectableRoomListItem( + roomTypeArg: CircleRoomTypeArg, + selected: Boolean = false +) = SelectableRoomListItem( id = roomId, - info = toRoomInfo(), + info = RoomInfo( + nameOrId(), + if (roomTypeArg == CircleRoomTypeArg.Circle) getCircleAvatarUrl() else avatarUrl + ), isSelected = selected ) fun RoomSummary.toJoinedGalleryListItem() = JoinedGalleryListItem( id = roomId, - info = toRoomInfo(), + info = RoomInfo(nameOrId(), avatarUrl), roomOwner = getRoomOwner(roomId)?.toUser() ) diff --git a/core/src/main/java/org/futo/circles/core/model/RoomInviteListItem.kt b/core/src/main/java/org/futo/circles/core/model/RoomInviteListItem.kt index ecf322a95fb3f7b8bd227c947316a19886ffaca5..0b76d9411a335dc7b615573626d82aa06d8e5cca 100644 --- a/core/src/main/java/org/futo/circles/core/model/RoomInviteListItem.kt +++ b/core/src/main/java/org/futo/circles/core/model/RoomInviteListItem.kt @@ -2,7 +2,7 @@ package org.futo.circles.core.model import org.futo.circles.core.base.list.IdEntity import org.futo.circles.core.extensions.notEmptyDisplayName -import org.futo.circles.core.mapping.toRoomInfo +import org.futo.circles.core.mapping.nameOrId import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.session.getUserOrDefault import org.matrix.android.sdk.api.session.room.model.RoomSummary @@ -22,7 +22,7 @@ data class RoomInviteListItem( fun RoomSummary.toRoomInviteListItem(roomType: CircleRoomTypeArg, shouldBlurIcon: Boolean) = RoomInviteListItem( roomId = roomId, - info = toRoomInfo(), + info = RoomInfo(nameOrId(), avatarUrl), inviterName = getInviterName(), isEncrypted = isEncrypted, shouldBlurIcon = shouldBlurIcon, diff --git a/core/src/main/java/org/futo/circles/core/model/TimelineListItem.kt b/core/src/main/java/org/futo/circles/core/model/TimelineListItem.kt index 2a69254901610ef141c9ffe5bfae030504f26d6a..063379ba3a12844140c45bd33a2cf97ab574b6a1 100644 --- a/core/src/main/java/org/futo/circles/core/model/TimelineListItem.kt +++ b/core/src/main/java/org/futo/circles/core/model/TimelineListItem.kt @@ -2,8 +2,7 @@ package org.futo.circles.core.model import org.futo.circles.core.R import org.futo.circles.core.base.list.IdEntity -import org.futo.circles.core.mapping.toRoomInfo -import org.matrix.android.sdk.api.session.room.model.Membership +import org.futo.circles.core.mapping.nameOrId import org.matrix.android.sdk.api.session.room.model.RoomSummary sealed class TimelineListItem : IdEntity<String> @@ -34,7 +33,7 @@ data class MutualFriendListItem( fun RoomSummary.toTimelineRoomListItem() = TimelineRoomListItem( id = roomId, - info = toRoomInfo(), + info = RoomInfo(nameOrId(), avatarUrl), ) diff --git a/gallery/src/main/java/org/futo/circles/gallery/feature/select/SelectGalleriesDataSource.kt b/gallery/src/main/java/org/futo/circles/gallery/feature/select/SelectGalleriesDataSource.kt index 644a8400b2be0a7454590bb397c2a487701a1793..e12de59d4429c4816789a2cf36a78c4347b217ce 100644 --- a/gallery/src/main/java/org/futo/circles/gallery/feature/select/SelectGalleriesDataSource.kt +++ b/gallery/src/main/java/org/futo/circles/gallery/feature/select/SelectGalleriesDataSource.kt @@ -2,6 +2,7 @@ package org.futo.circles.gallery.feature.select import androidx.lifecycle.MutableLiveData import org.futo.circles.core.mapping.toSelectableRoomListItem +import org.futo.circles.core.model.CircleRoomTypeArg import org.futo.circles.core.model.SelectableRoomListItem import org.futo.circles.core.utils.getGalleries import org.matrix.android.sdk.api.session.room.model.Membership @@ -12,7 +13,9 @@ class SelectGalleriesDataSource @Inject constructor() { val galleriesLiveData = MutableLiveData(getInitialGalleriesList()) private fun getInitialGalleriesList(): List<SelectableRoomListItem> = - getGalleries(membershipFilter = listOf(Membership.JOIN)).map { it.toSelectableRoomListItem() } + getGalleries(membershipFilter = listOf(Membership.JOIN)).map { + it.toSelectableRoomListItem(CircleRoomTypeArg.Photo) + } fun toggleGallerySelect(gallery: SelectableRoomListItem) { val newList = galleriesLiveData.value?.toMutableList()?.map {