fix: Add redaction events to timeline

The redaction events should not
be displayed in the GUI but it
is the job of the app to hide
them from the timeline while
the SDK should offer an
accurate list of ALL timeline
events by default.
This commit is contained in:
Christian Pauly 2022-02-03 13:52:07 +01:00
parent d5595d9df8
commit 846d5b0f46
2 changed files with 12 additions and 11 deletions

View File

@ -286,7 +286,8 @@ class Timeline {
));
onChange?.call(index);
}
} else if (status.isRemoved) {
}
if (status.isRemoved) {
final i = _findEvent(event_id: eventUpdate.content['event_id']);
if (i < events.length) {
removeAggregatedEvent(events[i]);

View File

@ -146,12 +146,12 @@ void main() {
await Future.delayed(Duration(milliseconds: 50));
expect(updateCount, 3);
expect(insertList, [0, 0]);
expect(insertList, [0, 0, 0]);
expect(insertList.length, timeline.events.length);
expect(changeList, [1]);
expect(removeList, []);
expect(timeline.events.length, 2);
expect(timeline.events[1].redacted, true);
expect(timeline.events.length, 3);
expect(timeline.events[2].redacted, true);
});
test('Send message', () async {
@ -160,7 +160,7 @@ void main() {
await Future.delayed(Duration(milliseconds: 50));
expect(updateCount, 5);
expect(insertList, [0, 0, 0]);
expect(insertList, [0, 0, 0, 0]);
expect(insertList.length, timeline.events.length);
final eventId = timeline.events[0].eventId;
expect(eventId.startsWith('\$event'), true);
@ -183,7 +183,7 @@ void main() {
await Future.delayed(Duration(milliseconds: 50));
expect(updateCount, 6);
expect(insertList, [0, 0, 0]);
expect(insertList, [0, 0, 0, 0]);
expect(insertList.length, timeline.events.length);
expect(timeline.events[0].eventId, eventId);
expect(timeline.events[0].status, EventStatus.synced);
@ -215,7 +215,7 @@ void main() {
await Future.delayed(Duration(milliseconds: 50));
expect(updateCount, 13);
expect(insertList, [0, 0, 0, 0, 0, 1, 2]);
expect(insertList, [0, 0, 0, 0, 0, 0, 1, 2]);
expect(insertList.length, timeline.events.length);
expect(changeList, [1, 0, 0, 0, 1, 2]);
expect(removeList, []);
@ -231,10 +231,10 @@ void main() {
expect(updateCount, 14);
expect(insertList, [0, 0, 0, 0, 0, 1, 2]);
expect(insertList, [0, 0, 0, 0, 0, 0, 1, 2]);
expect(changeList, [1, 0, 0, 0, 1, 2]);
expect(removeList, [0]);
expect(timeline.events.length, 6);
expect(timeline.events.length, 7);
expect(timeline.events[0].status, EventStatus.error);
});
@ -278,7 +278,7 @@ void main() {
expect(updateCount, 17);
expect(insertList, [0, 0, 0, 0, 0, 1, 2, 0]);
expect(insertList, [0, 0, 0, 0, 0, 0, 1, 2, 0]);
expect(changeList, [1, 0, 0, 0, 1, 2, 0, 0]);
expect(removeList, [0]);
expect(timeline.events.length, 1);
@ -293,7 +293,7 @@ void main() {
await Future.delayed(Duration(milliseconds: 50));
expect(updateCount, 20);
expect(insertList, [0, 0, 0, 0, 0, 1, 2, 0]);
expect(insertList, [0, 0, 0, 0, 0, 0, 1, 2, 0]);
expect(historyRequestList, []);
expect(timeline.events.length, 3);
expect(timeline.events[0].eventId, '3143273582443PhrSn:example.org');