diff --git a/example/lib/multiple_conversation.dart b/example/lib/multiple_conversation.dart index 647ae7dd..b5fdd5af 100644 --- a/example/lib/multiple_conversation.dart +++ b/example/lib/multiple_conversation.dart @@ -56,9 +56,9 @@ class ChannelListPage extends StatelessWidget { body: ChannelsBloc( child: ChannelListView( filter: { - 'members': { - '\$in': [StreamChat.of(context).user.id], - } + // 'members': { + // '\$in': [StreamChat.of(context).user.id], + // } }, sort: [SortOption('last_message_at')], pagination: PaginationParams( diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 8917cc07..b94a312a 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,7 +1,7 @@ name: example description: A new Flutter project. -version: 1.0.44+46 +version: 1.0.45+47 environment: sdk: ">=2.2.2 <3.0.0" diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index 8ed15657..cd1a0910 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -70,9 +70,11 @@ class ChannelPreview extends StatelessWidget { StreamChatTheme.of(context).channelPreviewTheme.title, ), ), - UnreadIndicator( - channel: channel, - ), + if (channel.state.members.contains( + (Member e) => e.userId == channel.client.state.user.id)) + UnreadIndicator( + channel: channel, + ), ], ), subtitle: Row( @@ -92,7 +94,7 @@ class ChannelPreview extends StatelessWidget { .isAfter(channel .state.lastMessage.createdAt)) .length == - channel.memberCount - 1, + (channel.memberCount ?? 0) - 1, ), ); } diff --git a/lib/src/message_list_view.dart b/lib/src/message_list_view.dart index 946ad66f..2a60b75b 100644 --- a/lib/src/message_list_view.dart +++ b/lib/src/message_list_view.dart @@ -289,7 +289,9 @@ class _MessageListViewState extends State { return messageWidget; }, ), - if (widget.showScrollToBottom) + if (streamChannel.channel.state.members.contains((Member e) => + e.userId == streamChannel.channel.client.state.user.id) && + widget.showScrollToBottom) StreamBuilder( stream: streamChannel.channel.state.unreadCountStream, builder: (context, snapshot) { @@ -374,8 +376,16 @@ class _MessageListViewState extends State { left: 10, top: -10, child: CircleAvatar( - radius: 20, - child: Text(unreadCount.toString()), + child: Padding( + padding: const EdgeInsets.all(3.0), + child: Text( + unreadCount.toString(), + style: TextStyle( + fontSize: 11, + fontWeight: FontWeight.bold, + ), + ), + ), ), ), ], @@ -555,13 +565,14 @@ class _MessageListViewState extends State { final channel = StreamChannel.of(context).channel; final readList = channel.state?.read - ?.where((element) => element.user.id != userId) - ?.where((read) => - (read.lastRead.isAfter(message.createdAt) || - read.lastRead.isAtSameMomentAs(message.createdAt)) && - (index == 0 || - read.lastRead.isBefore(messages[index - 1].createdAt))) - ?.toList(); + ?.where((element) => element.user.id != userId) + ?.where((read) => + (read.lastRead.isAfter(message.createdAt) || + read.lastRead.isAtSameMomentAs(message.createdAt)) && + (index == 0 || + read.lastRead.isBefore(messages[index - 1].createdAt))) + ?.toList() ?? + []; final allRead = readList.length >= (channel.memberCount ?? 0) - 1;