Merge branch 'timeline-fix-requesthistory' into 'master'
[Timeline] Fix requesthistory See merge request famedly/famedlysdk!90
This commit is contained in:
commit
cbba4c47b2
|
@ -42,13 +42,20 @@ class Timeline {
|
||||||
final onTimelineInsertCallback onInsert;
|
final onTimelineInsertCallback onInsert;
|
||||||
|
|
||||||
StreamSubscription<EventUpdate> sub;
|
StreamSubscription<EventUpdate> sub;
|
||||||
|
bool _requestingHistoryLock = false;
|
||||||
|
|
||||||
Future<void> requestHistory({int historyCount = Room.DefaultHistoryCount}) {
|
Future<void> requestHistory(
|
||||||
return room.requestHistory(
|
{int historyCount = Room.DefaultHistoryCount}) async {
|
||||||
|
if (!_requestingHistoryLock) {
|
||||||
|
_requestingHistoryLock = true;
|
||||||
|
await room.requestHistory(
|
||||||
historyCount: historyCount,
|
historyCount: historyCount,
|
||||||
onHistoryReceived: () {
|
onHistoryReceived: () {
|
||||||
if (room.prev_batch.isEmpty || room.prev_batch == null) events = [];
|
if (room.prev_batch.isEmpty || room.prev_batch == null) events = [];
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
_requestingHistoryLock = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Timeline({this.room, this.events, this.onUpdate, this.onInsert}) {
|
Timeline({this.room, this.events, this.onUpdate, this.onInsert}) {
|
||||||
|
@ -95,6 +102,11 @@ class Timeline {
|
||||||
|
|
||||||
newEvent = Event.fromJson(eventUpdate.content, room);
|
newEvent = Event.fromJson(eventUpdate.content, room);
|
||||||
|
|
||||||
|
if (eventUpdate.type == "history" &&
|
||||||
|
events.indexWhere(
|
||||||
|
(e) => e.eventId == eventUpdate.content["event_id"]) !=
|
||||||
|
-1) return;
|
||||||
|
|
||||||
events.insert(0, newEvent);
|
events.insert(0, newEvent);
|
||||||
if (onInsert != null) onInsert(0);
|
if (onInsert != null) onInsert(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue