mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-04 10:32:34 +00:00
RoomList : make invite filter truly exclusive
This commit is contained in:
+7
-4
@@ -26,23 +26,24 @@ val RoomListFilter.predicate
|
|||||||
is RoomListFilter.Any -> { _: RoomSummary -> true }
|
is RoomListFilter.Any -> { _: RoomSummary -> true }
|
||||||
RoomListFilter.None -> { _: RoomSummary -> false }
|
RoomListFilter.None -> { _: RoomSummary -> false }
|
||||||
RoomListFilter.Category.Group -> { roomSummary: RoomSummary ->
|
RoomListFilter.Category.Group -> { roomSummary: RoomSummary ->
|
||||||
roomSummary is RoomSummary.Filled && !roomSummary.details.isDirect
|
roomSummary is RoomSummary.Filled && !roomSummary.details.isDirect && !roomSummary.isInvited()
|
||||||
}
|
}
|
||||||
RoomListFilter.Category.People -> { roomSummary: RoomSummary ->
|
RoomListFilter.Category.People -> { roomSummary: RoomSummary ->
|
||||||
roomSummary is RoomSummary.Filled && roomSummary.details.isDirect
|
roomSummary is RoomSummary.Filled && roomSummary.details.isDirect && !roomSummary.isInvited()
|
||||||
}
|
}
|
||||||
RoomListFilter.Favorite -> { roomSummary: RoomSummary ->
|
RoomListFilter.Favorite -> { roomSummary: RoomSummary ->
|
||||||
roomSummary is RoomSummary.Filled && roomSummary.details.isFavorite
|
roomSummary is RoomSummary.Filled && roomSummary.details.isFavorite && !roomSummary.isInvited()
|
||||||
}
|
}
|
||||||
RoomListFilter.Unread -> { roomSummary: RoomSummary ->
|
RoomListFilter.Unread -> { roomSummary: RoomSummary ->
|
||||||
roomSummary is RoomSummary.Filled &&
|
roomSummary is RoomSummary.Filled &&
|
||||||
|
!roomSummary.isInvited() &&
|
||||||
(roomSummary.details.numUnreadNotifications > 0 || roomSummary.details.isMarkedUnread)
|
(roomSummary.details.numUnreadNotifications > 0 || roomSummary.details.isMarkedUnread)
|
||||||
}
|
}
|
||||||
is RoomListFilter.NormalizedMatchRoomName -> { roomSummary: RoomSummary ->
|
is RoomListFilter.NormalizedMatchRoomName -> { roomSummary: RoomSummary ->
|
||||||
roomSummary is RoomSummary.Filled && roomSummary.details.name.contains(pattern, ignoreCase = true)
|
roomSummary is RoomSummary.Filled && roomSummary.details.name.contains(pattern, ignoreCase = true)
|
||||||
}
|
}
|
||||||
RoomListFilter.Invite -> { roomSummary: RoomSummary ->
|
RoomListFilter.Invite -> { roomSummary: RoomSummary ->
|
||||||
roomSummary is RoomSummary.Filled && roomSummary.details.currentUserMembership == CurrentUserMembership.INVITED
|
roomSummary.isInvited()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,3 +60,5 @@ fun List<RoomSummary>.filter(filter: RoomListFilter): List<RoomSummary> {
|
|||||||
else -> filter(filter.predicate)
|
else -> filter(filter.predicate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun RoomSummary.isInvited() = this is RoomSummary.Filled && this.details.currentUserMembership == CurrentUserMembership.INVITED
|
||||||
|
|||||||
Reference in New Issue
Block a user