Skip to content
Snippets Groups Projects
Commit dd34cca9 authored by Pierre Nicolas's avatar Pierre Nicolas :joy:
Browse files

presence: fix presence always showing green

Fix regression from this commit edb27743
- `contacts` is misleading and actually refers to `members`.
- `ObserveContact` (which should be more accurately named `ObserveMember`) now returns a list of conversation members, including the user.

This commit introduces logic to filter out the user when processing presence information.

GitLab: #1756
Change-Id: Ib40ab946f8284d693fe7ab69942b09f9942c1173
parent af84c16e
No related branches found
No related tags found
No related merge requests found
...@@ -31,10 +31,15 @@ class ConversationItemViewModel( ...@@ -31,10 +31,15 @@ class ConversationItemViewModel(
val mode: Conversation.Mode = conversation.mode.blockingFirst() val mode: Conversation.Mode = conversation.mode.blockingFirst()
val uuid: String = uri.rawUriString val uuid: String = uri.rawUriString
val title: String = getTitle(conversation, conversationProfile, contacts) val title: String = getTitle(conversation, conversationProfile, contacts)
// Presence of conversation is:
// - CONNECTED if at least one contact is connected
// - AVAILABLE if no contact is connected but at least one contact is available
// - OFFLINE otherwise
val presenceStatus: Contact.PresenceStatus = if (showPresence) val presenceStatus: Contact.PresenceStatus = if (showPresence)
contacts.let { contacts.let {
var status = Contact.PresenceStatus.OFFLINE var status = Contact.PresenceStatus.OFFLINE
for (contact in it) { for (contact in it) {
if (contact.contact.isUser) continue // Do not show presence for self
if (contact.presence == Contact.PresenceStatus.CONNECTED) if (contact.presence == Contact.PresenceStatus.CONNECTED)
return@let Contact.PresenceStatus.CONNECTED return@let Contact.PresenceStatus.CONNECTED
else if (contact.presence == Contact.PresenceStatus.AVAILABLE) else if (contact.presence == Contact.PresenceStatus.AVAILABLE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment