1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-25 22:39:22 +00:00

Fix unread conversations drop down

This commit is contained in:
Pierre HUBERT 2021-03-11 18:50:36 +01:00
parent 3257fd865f
commit 8f2574a555
3 changed files with 35 additions and 15 deletions

View File

@ -8,7 +8,7 @@ import 'package:comunic/models/unread_conversation.dart';
class UnreadConversationsList extends AbstractList<UnreadConversation> { class UnreadConversationsList extends AbstractList<UnreadConversation> {
/// Get the ID of the users included in this list /// Get the ID of the users included in this list
Set<int> get usersID { Set<int> get usersID {
final set = Set(); final set = Set<int>();
forEach((element) => set.addAll(element.message.usersID)); forEach((element) => set.addAll(element.message.usersID));
return set; return set;
} }

View File

@ -224,7 +224,8 @@ class ConversationMessage extends SerializableElement<ConversationMessage> {
Set<int> get usersID { Set<int> get usersID {
if (userID != null) return Set()..add(userID); if (userID != null) return Set()..add(userID);
return serverMessage.usersID; if (serverMessage != null) return serverMessage.usersID;
return Set();
} }
@override @override

View File

@ -3,8 +3,11 @@ import 'package:comunic/helpers/events_helper.dart';
import 'package:comunic/helpers/users_helper.dart'; import 'package:comunic/helpers/users_helper.dart';
import 'package:comunic/lists/unread_conversations_list.dart'; import 'package:comunic/lists/unread_conversations_list.dart';
import 'package:comunic/lists/users_list.dart'; import 'package:comunic/lists/users_list.dart';
import 'package:comunic/ui/routes/main_route/main_route.dart';
import 'package:comunic/ui/widgets/async_screen_widget.dart'; import 'package:comunic/ui/widgets/async_screen_widget.dart';
import 'package:comunic/ui/widgets/conversation_image_widget.dart';
import 'package:comunic/ui/widgets/safe_state.dart'; import 'package:comunic/ui/widgets/safe_state.dart';
import 'package:comunic/utils/date_utils.dart';
import 'package:comunic/utils/intl_utils.dart'; import 'package:comunic/utils/intl_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -67,25 +70,41 @@ class _UnreadConversationsScreenState
} }
Widget _tileBuilder(BuildContext context, int index) { Widget _tileBuilder(BuildContext context, int index) {
/*final conv = _list[index]; final conv = _list[index];
final user = _users.getUser(conv.userID);
final message = _list[index].message;
final singleUserConv = conv.conv.members.length < 3;
String messageStr;
if (message.hasFile)
messageStr = tr("New file");
else if (message.hasMessage)
messageStr = singleUserConv
? message.message.content
: tr("%1% : %2%", args: {
"1": _users.getUser(message.userID).fullName,
"2": message.message.content,
});
else
message.serverMessage.getText(_users);
return ListTile( return ListTile(
leading: AccountImageWidget(user: user), leading: ConversationImageWidget(
title: Text(user.displayName), conversation: conv.conv,
users: _users,
),
title: Text(ConversationsHelper.getConversationName(conv.conv, _users)),
subtitle: RichText( subtitle: RichText(
text: TextSpan(style: Theme.of(context).textTheme.bodyText2, children: [ text: TextSpan(style: Theme.of(context).textTheme.bodyText2, children: [
TextSpan(text: conv.convName.isNotEmpty ? conv.convName + "\n" : ""),
TextSpan( TextSpan(
text: conv.message, text: messageStr,
style: TextStyle(fontStyle: FontStyle.italic), style: TextStyle(fontStyle: FontStyle.italic),
), ),
]), ]),
) ),
trailing: Text(diffTimeFromNowToStr(conv.lastActive)), trailing: Text(diffTimeFromNowToStr(conv.message.timeSent)),
onTap: () => MainController.of(context).openConversation(conv.id), onTap: () => MainController.of(context).openConversation(conv.conv.id),
);*/ );
// TODO : reimplement
throw new Exception("unimplemented");
} }
} }