1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-12-26 04:48:51 +00:00

Fix unread conversations dropdown

This commit is contained in:
Pierre HUBERT 2021-04-25 16:12:36 +02:00
parent 88217202f8
commit de7feb36ce
2 changed files with 22 additions and 2 deletions

View File

@ -9,7 +9,19 @@ class UnreadConversationsList extends AbstractList<UnreadConversation> {
/// Get the ID of the users included in this list
Set<int> get usersID {
final set = Set<int>();
forEach((element) => set.addAll(element.message.usersID));
forEach((element) {
set.addAll(element.conv.membersID);
set.addAll(element.message.usersID);
});
return set;
}
/// Get the ID of the groups references ind this list
Set<int> get groupsID {
final set = Set<int>();
forEach((element) {
if (element.conv.isGroupConversation) set.add(element.conv.groupID);
});
return set;
}
}

View File

@ -1,6 +1,8 @@
import 'package:comunic/helpers/conversations_helper.dart';
import 'package:comunic/helpers/events_helper.dart';
import 'package:comunic/helpers/groups_helper.dart';
import 'package:comunic/helpers/users_helper.dart';
import 'package:comunic/lists/groups_list.dart';
import 'package:comunic/lists/unread_conversations_list.dart';
import 'package:comunic/lists/users_list.dart';
import 'package:comunic/ui/routes/main_route/main_route.dart';
@ -25,12 +27,14 @@ class _UnreadConversationsScreenState
extends SafeState<UnreadConversationsScreen> {
UnreadConversationsList _list;
UsersList _users;
GroupsList _groups;
final _key = GlobalKey<AsyncScreenWidgetState>();
Future<void> _refresh() async {
_list = await ConversationsHelper.getListUnread();
_users = await UsersHelper().getListWithThrow(_list.usersID);
_groups = await GroupsHelper().getList(_list.groupsID);
}
@override
@ -93,6 +97,9 @@ class _UnreadConversationsScreenState
leading: ConversationImageWidget(
conversation: conv.conv,
users: _users,
group: conv.conv.isGroupConversation
? _groups.getGroup(conv.conv.groupID)
: null,
),
title: Text(ConversationsHelper.getConversationName(conv.conv, _users)),
subtitle: RichText(
@ -104,7 +111,8 @@ class _UnreadConversationsScreenState
]),
),
trailing: Text(diffTimeFromNowToStr(conv.message.timeSent)),
onTap: () => MainController.of(context).openConversationById(conv.conv.id),
onTap: () =>
MainController.of(context).openConversationById(conv.conv.id),
);
}
}