From dd34cca9491e5dea55acd3cce78142ba8e4abcf1 Mon Sep 17 00:00:00 2001 From: Pierre Nicolas <pierre.nicolas@savoirfairelinux.com> Date: Mon, 26 Aug 2024 10:36:34 -0400 Subject: [PATCH] presence: fix presence always showing green Fix regression from this commit https://git.jami.net/savoirfairelinux/jami-client-android/-/commit/edb277437911509a8c917c088283b878099942f6 - `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 --- .../kotlin/net/jami/smartlist/ConversationItemViewModel.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/smartlist/ConversationItemViewModel.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/smartlist/ConversationItemViewModel.kt index 04ab85ecf..699e45770 100644 --- a/jami-android/libjamiclient/src/main/kotlin/net/jami/smartlist/ConversationItemViewModel.kt +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/smartlist/ConversationItemViewModel.kt @@ -31,10 +31,15 @@ class ConversationItemViewModel( val mode: Conversation.Mode = conversation.mode.blockingFirst() val uuid: String = uri.rawUriString 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) contacts.let { var status = Contact.PresenceStatus.OFFLINE for (contact in it) { + if (contact.contact.isUser) continue // Do not show presence for self if (contact.presence == Contact.PresenceStatus.CONNECTED) return@let Contact.PresenceStatus.CONNECTED else if (contact.presence == Contact.PresenceStatus.AVAILABLE) -- GitLab