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 d2f894d7db0bcfa040cd465a9e4ea6d1d8a440ea..ca2bb9521a78dd04888782f88c8045f31c7217fc 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,12 +1,8 @@ package org.futo.circles.core.mapping -import org.futo.circles.core.extensions.notEmptyDisplayName -import org.futo.circles.core.model.InvitedGalleryListItem import org.futo.circles.core.model.JoinedGalleryListItem import org.futo.circles.core.model.RoomInfo import org.futo.circles.core.model.SelectableRoomListItem -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 fun RoomSummary.nameOrId() = displayName.takeIf { it.isNotEmpty() } ?: roomId @@ -25,15 +21,4 @@ fun RoomSummary.toSelectableRoomListItem(selected: Boolean = false) = Selectable fun RoomSummary.toJoinedGalleryListItem() = JoinedGalleryListItem( id = roomId, info = toRoomInfo() -) - -fun RoomSummary.toInvitedGalleryListItem(shouldBlurIcon: Boolean) = InvitedGalleryListItem( - id = roomId, - info = toRoomInfo(), - inviterName = getInviterName(), - shouldBlurIcon = shouldBlurIcon -) - -fun RoomSummary.getInviterName() = - MatrixSessionProvider.currentSession?.getUserOrDefault(inviterId ?: "")?.notEmptyDisplayName() - ?: "" \ No newline at end of file +) \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/model/InviteListItem.kt b/core/src/main/java/org/futo/circles/core/model/InviteListItem.kt new file mode 100644 index 0000000000000000000000000000000000000000..51039bda2e837edb1e882ea34a11e1574198ed06 --- /dev/null +++ b/core/src/main/java/org/futo/circles/core/model/InviteListItem.kt @@ -0,0 +1,41 @@ +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.provider.MatrixSessionProvider +import org.matrix.android.sdk.api.session.getUserOrDefault +import org.matrix.android.sdk.api.session.room.model.RoomSummary + +sealed class InviteListItem( + override val id: String, + open val inviteType: InviteTypeArg +) : IdEntity<String> + +data class RoomInviteListItem( + val roomId: String, + override val inviteType: InviteTypeArg, + val info: RoomInfo, + val isEncrypted: Boolean, + val inviterName: String, + val shouldBlurIcon: Boolean +) : InviteListItem(roomId, inviteType) + +data class FollowRequestListItem( + val user: CirclesUserSummary, + val reasonMessage: String? +) : InviteListItem(user.id, InviteTypeArg.People) + +fun RoomSummary.toRoomInviteListItem(inviteType: InviteTypeArg, shouldBlurIcon: Boolean) = + RoomInviteListItem( + roomId = roomId, + info = toRoomInfo(), + inviterName = getInviterName(), + isEncrypted = isEncrypted, + shouldBlurIcon = shouldBlurIcon, + inviteType = inviteType + ) + +fun RoomSummary.getInviterName() = + MatrixSessionProvider.currentSession?.getUserOrDefault(inviterId ?: "")?.notEmptyDisplayName() + ?: "" \ No newline at end of file