Skip to content
Snippets Groups Projects
Commit b09e5311 authored by Emmanuel ROHEE's avatar Emmanuel ROHEE
Browse files

Do a smart update of the recents from the events stream rather than hammering initialSync each time

parent 62dfa3c7
No related branches found
No related tags found
No related merge requests found
...@@ -25,13 +25,24 @@ angular.module('RecentsController', ['matrixService', 'eventHandlerService']) ...@@ -25,13 +25,24 @@ angular.module('RecentsController', ['matrixService', 'eventHandlerService'])
// in order to highlight a specific room in the list // in order to highlight a specific room in the list
$scope.recentsSelectedRoomID; $scope.recentsSelectedRoomID;
// Refresh the list on matrix invitation and message event var listenToEventStream = function() {
$scope.$on(eventHandlerService.MEMBER_EVENT, function(ngEvent, event, isLive) { // Refresh the list on matrix invitation and message event
refresh(); $scope.$on(eventHandlerService.MEMBER_EVENT, function(ngEvent, event, isLive) {
}); var config = matrixService.config();
$scope.$on(eventHandlerService.MSG_EVENT, function(ngEvent, event, isLive) { if (event.state_key === config.user_id && event.content.membership === "invite") {
refresh(); console.log("Invited to room " + event.room_id);
}); // FIXME push membership to top level key to match /im/sync
event.membership = event.content.membership;
// FIXME bodge a nicer name than the room ID for this invite.
event.room_display_name = event.user_id + "'s room";
$scope.rooms[event.room_id] = event;
}
});
$scope.$on(eventHandlerService.MSG_EVENT, function(ngEvent, event, isLive) {
$scope.rooms[event.room_id].lastMsg = event;
});
};
var refresh = function() { var refresh = function() {
// List all rooms joined or been invited to // List all rooms joined or been invited to
...@@ -56,6 +67,9 @@ angular.module('RecentsController', ['matrixService', 'eventHandlerService']) ...@@ -56,6 +67,9 @@ angular.module('RecentsController', ['matrixService', 'eventHandlerService'])
for (var i = 0; i < presence.length; ++i) { for (var i = 0; i < presence.length; ++i) {
eventHandlerService.handleEvent(presence[i], false); eventHandlerService.handleEvent(presence[i], false);
} }
// From now, update recents from the stream
listenToEventStream();
}, },
function(error) { function(error) {
$scope.feedback = "Failure: " + error.data; $scope.feedback = "Failure: " + error.data;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment