feat: new design

This commit is contained in:
Krille Fear 2021-11-13 13:06:36 +01:00
commit 22fdb667ba
16 changed files with 625 additions and 512 deletions

View file

@ -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;

View file

@ -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();
}
}