From a0fac0b17bd2a12d96e272c4908251e6dfd3c4bf Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 23 Nov 2021 16:15:48 +0100 Subject: [PATCH] fix(llc,ui): fix user presence indicator update --- packages/stream_chat/CHANGELOG.md | 1 + packages/stream_chat/lib/src/core/models/user.dart | 13 ++++++++++++- packages/stream_chat_flutter/CHANGELOG.md | 1 + .../stream_chat_flutter/lib/src/channel_info.dart | 7 ++++--- .../stream_chat_flutter/lib/src/group_avatar.dart | 2 ++ 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index 8e54b7c1..3b6578f5 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -8,6 +8,7 @@ - `closeConnection()` now uses `normalClosure` status when closing websocket. - Fixed local unread count indicator increasing for thread replies +- Fixed user presence indicator not updating correctly ## 3.2.0 diff --git a/packages/stream_chat/lib/src/core/models/user.dart b/packages/stream_chat/lib/src/core/models/user.dart index 44df4399..a483c7a3 100644 --- a/packages/stream_chat/lib/src/core/models/user.dart +++ b/packages/stream_chat/lib/src/core/models/user.dart @@ -179,5 +179,16 @@ class User extends Equatable { ); @override - List get props => [id, role]; + List get props => [ + id, + role, + createdAt, + updatedAt, + lastActive, + online, + extraData, + banned, + teams, + language, + ]; } diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index a94eaaea..fa6af474 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -12,6 +12,7 @@ - Fixed `MessageWidget` null errors associated with `channel.memberCount`. - Fixed adding attachments on web. - [[#767]](https://github.com/GetStream/stream-chat-flutter/issues/767): Fix `MessageInput` focus behaviour when sending messages. +- Fixed user presence indicator not updating correctly ## 3.2.0 diff --git a/packages/stream_chat_flutter/lib/src/channel_info.dart b/packages/stream_chat_flutter/lib/src/channel_info.dart index 6bd61dad..62bfd1de 100644 --- a/packages/stream_chat_flutter/lib/src/channel_info.dart +++ b/packages/stream_chat_flutter/lib/src/channel_info.dart @@ -59,9 +59,10 @@ class ChannelInfo extends StatelessWidget { final memberCount = channel.memberCount; if (memberCount != null && memberCount > 2) { var text = context.translations.membersCountText(memberCount); - final watcherCount = channel.state?.watcherCount ?? 0; - if (watcherCount > 0) { - text += ' ${context.translations.watchersCountText(watcherCount)}'; + final onlineCount = + members?.where((m) => m.user?.online == true).length ?? 0; + if (onlineCount > 0) { + text += ', ${context.translations.watchersCountText(onlineCount)}'; } alternativeWidget = Text( text, diff --git a/packages/stream_chat_flutter/lib/src/group_avatar.dart b/packages/stream_chat_flutter/lib/src/group_avatar.dart index 4a16279e..bf599c63 100644 --- a/packages/stream_chat_flutter/lib/src/group_avatar.dart +++ b/packages/stream_chat_flutter/lib/src/group_avatar.dart @@ -81,6 +81,7 @@ class GroupAvatar extends StatelessWidget { ), initialData: member, builder: (context, member) => UserAvatar( + showOnlineStatus: false, user: member.user!, borderRadius: BorderRadius.zero, ), @@ -118,6 +119,7 @@ class GroupAvatar extends StatelessWidget { ), initialData: member, builder: (context, member) => UserAvatar( + showOnlineStatus: false, user: member.user!, borderRadius: BorderRadius.zero, ),