Merge branch 'krille/timeline-fixes' into 'main'

Krille/timeline fixes

See merge request famedly/company/frontend/famedlysdk!953
This commit is contained in:
td 2022-02-07 14:31:56 +00:00
commit a23982a77c
5 changed files with 20 additions and 13 deletions

View File

@ -1,3 +1,7 @@
## [0.8.3] - 07nd Feb 2022
- fix: Remove onHistoryReceived which was broken anyway
- fix: Remove aggregation event doesnt trigger onChange
## [0.8.2] - 04nd Feb 2022
- fix: Add redaction events to timeline
- fix: Resize image with compute by using const class arguments

View File

@ -1140,7 +1140,6 @@ class Room {
void Function(int index)? onRemove,
void Function(int insertID)? onInsert,
void Function()? onUpdate,
void Function(int count)? onHistoryReceived,
}) async {
await postLoad();
var events;
@ -1170,7 +1169,6 @@ class Room {
onRemove: onRemove,
onInsert: onInsert,
onUpdate: onUpdate,
onHistoryReceived: onHistoryReceived,
);
if (client.database == null) {
await requestHistory(historyCount: 10);

View File

@ -36,7 +36,6 @@ class Timeline {
final void Function(int index)? onChange;
final void Function(int index)? onInsert;
final void Function(int index)? onRemove;
final void Function(int count)? onHistoryReceived;
StreamSubscription<EventUpdate>? sub;
StreamSubscription<SyncUpdate>? roomSub;
@ -87,16 +86,19 @@ class Timeline {
);
if (eventsFromStore != null && eventsFromStore.isNotEmpty) {
events.addAll(eventsFromStore);
onHistoryReceived?.call(eventsFromStore.length);
final startIndex = events.length - eventsFromStore.length;
final endIndex = events.length;
for (var i = startIndex; i < endIndex; i++) {
onInsert?.call(i);
}
} else {
Logs().v('No more events found in the store. Request from server...');
final count = await room.requestHistory(
await room.requestHistory(
historyCount: historyCount,
onHistoryReceived: () {
_collectHistoryUpdates = true;
},
);
onHistoryReceived?.call(count);
}
} finally {
_collectHistoryUpdates = false;
@ -112,7 +114,6 @@ class Timeline {
this.onChange,
this.onInsert,
this.onRemove,
this.onHistoryReceived,
}) : events = events ?? [] {
sub = room.client.onEvent.stream.listen(_handleEventUpdate);
@ -260,6 +261,13 @@ class Timeline {
_removeEventFromSet(events, event);
}
}
if (onChange != null) {
final relationshipEventId = event.relationshipEventId;
if (relationshipEventId != null) {
final index = _findEvent(event_id: relationshipEventId);
onChange?.call(index);
}
}
}
void _handleEventUpdate(EventUpdate eventUpdate, {bool update = true}) {
@ -331,8 +339,8 @@ class Timeline {
} else {
index = events.firstIndexWhereNotError;
events.insert(index, newEvent);
onInsert?.call(index);
}
onInsert?.call(index);
addAggregatedEvent(newEvent);
}

View File

@ -1,6 +1,6 @@
name: matrix
description: Matrix Dart SDK
version: 0.8.2
version: 0.8.3
homepage: https://famedly.com
repository: https://gitlab.com/famedly/company/frontend/famedlysdk.git

View File

@ -31,7 +31,6 @@ void main() {
final insertList = <int>[];
final changeList = <int>[];
final removeList = <int>[];
final historyRequestList = <int>[];
var olmEnabled = true;
late Client client;
@ -60,7 +59,6 @@ void main() {
onInsert: insertList.add,
onChange: changeList.add,
onRemove: removeList.add,
onHistoryReceived: historyRequestList.add,
);
});
@ -293,8 +291,7 @@ void main() {
await Future.delayed(Duration(milliseconds: 50));
expect(updateCount, 20);
expect(insertList, [0, 0, 0, 0, 0, 0, 1, 2, 0]);
expect(historyRequestList, []);
expect(insertList, [0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 2]);
expect(timeline.events.length, 3);
expect(timeline.events[0].eventId, '3143273582443PhrSn:example.org');
expect(timeline.events[1].eventId, '2143273582443PhrSn:example.org');