mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Fix unread conversations dropdown
This commit is contained in:
		@@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user