feat: new design
This commit is contained in:
parent
7355d6609d
commit
22fdb667ba
16 changed files with 625 additions and 512 deletions
|
|
@ -17,21 +17,6 @@ extension LocalizedBody on Event {
|
|||
matrixFile.result?.save(context);
|
||||
}
|
||||
|
||||
IconData get statusIcon {
|
||||
switch (status.intValue) {
|
||||
case -1:
|
||||
return Icons.error_outline;
|
||||
case 0:
|
||||
return Icons.timer_outlined;
|
||||
case 1:
|
||||
return Icons.done_outlined;
|
||||
case 2:
|
||||
return Icons.done_all_outlined;
|
||||
default:
|
||||
return Icons.done_outlined;
|
||||
}
|
||||
}
|
||||
|
||||
bool get isAttachmentSmallEnough =>
|
||||
infoMap['size'] is int &&
|
||||
infoMap['size'] < room.client.database.maxFileSize;
|
||||
|
|
|
|||
|
|
@ -65,38 +65,26 @@ extension RoomStatusExtension on Room {
|
|||
return typingText;
|
||||
}
|
||||
|
||||
String getLocalizedSeenByText(
|
||||
BuildContext context,
|
||||
List<User> getSeenByUsers(
|
||||
Timeline timeline,
|
||||
List<Event> filteredEvents,
|
||||
Set<String> unfolded,
|
||||
) {
|
||||
var seenByText = '';
|
||||
if (timeline.events.isNotEmpty) {
|
||||
final filteredEvents = timeline.getFilteredEvents(unfolded: unfolded);
|
||||
if (filteredEvents.isEmpty) return '';
|
||||
final lastReceipts = <User>{};
|
||||
// now we iterate the timeline events until we hit the first rendered event
|
||||
for (final event in timeline.events) {
|
||||
lastReceipts.addAll(event.receipts.map((r) => r.user));
|
||||
if (event.eventId == filteredEvents.first.eventId) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
lastReceipts.removeWhere((user) =>
|
||||
user.id == client.userID || user.id == filteredEvents.first.senderId);
|
||||
if (lastReceipts.length == 1) {
|
||||
seenByText =
|
||||
L10n.of(context).seenByUser(lastReceipts.first.calcDisplayname());
|
||||
} else if (lastReceipts.length == 2) {
|
||||
seenByText = seenByText = L10n.of(context).seenByUserAndUser(
|
||||
lastReceipts.first.calcDisplayname(),
|
||||
lastReceipts.last.calcDisplayname());
|
||||
} else if (lastReceipts.length > 2) {
|
||||
seenByText = L10n.of(context).seenByUserAndCountOthers(
|
||||
lastReceipts.first.calcDisplayname(), lastReceipts.length - 1);
|
||||
if (timeline.events.isEmpty) return [];
|
||||
|
||||
final filteredEvents = timeline.getFilteredEvents(unfolded: unfolded);
|
||||
if (filteredEvents.isEmpty) return [];
|
||||
|
||||
final lastReceipts = <User>{};
|
||||
// now we iterate the timeline events until we hit the first rendered event
|
||||
for (final event in timeline.events) {
|
||||
lastReceipts.addAll(event.receipts.map((r) => r.user));
|
||||
if (event.eventId == filteredEvents.first.eventId) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return seenByText;
|
||||
lastReceipts.removeWhere((user) =>
|
||||
user.id == client.userID || user.id == filteredEvents.first.senderId);
|
||||
return lastReceipts.toList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue