Dispatch an event after processing a group sync

Related #521
This commit is contained in:
Karel Bilek 2016-01-01 04:19:28 +01:00 committed by lilia
parent 6a268f0325
commit d8381cfc47
2 changed files with 44 additions and 34 deletions

View file

@ -36955,28 +36955,33 @@ MessageReceiver.prototype = {
return this.handleAttachment(attachmentPointer).then(function() { return this.handleAttachment(attachmentPointer).then(function() {
var groupBuffer = new GroupBuffer(attachmentPointer.data); var groupBuffer = new GroupBuffer(attachmentPointer.data);
var groupDetails = groupBuffer.next(); var groupDetails = groupBuffer.next();
var promises = [];
while (groupDetails !== undefined) { while (groupDetails !== undefined) {
(function(groupDetails) { var promise = (function(groupDetails) {
groupDetails.id = getString(groupDetails.id); groupDetails.id = getString(groupDetails.id);
textsecure.storage.groups.getGroup(groupDetails.id). return textsecure.storage.groups.getGroup(groupDetails.id).
then(function(existingGroup) { then(function(existingGroup) {
if (existingGroup === undefined) { if (existingGroup === undefined) {
return textsecure.storage.groups.createNewGroup( return textsecure.storage.groups.createNewGroup(
groupDetails.members, groupDetails.id groupDetails.members, groupDetails.id
); );
} else { } else {
return textsecure.storage.groups.updateNumbers( return textsecure.storage.groups.updateNumbers(
groupDetails.id, groupDetails.members groupDetails.id, groupDetails.members
); );
} }
}).then(function() { }).then(function() {
var ev = new Event('group'); var ev = new Event('group');
ev.groupDetails = groupDetails; ev.groupDetails = groupDetails;
eventTarget.dispatchEvent(ev); eventTarget.dispatchEvent(ev);
}); });
})(groupDetails); })(groupDetails);
groupDetails = groupBuffer.next(); groupDetails = groupBuffer.next();
promises.push(promise);
} }
Promise.all(promises).then(function() {
eventTarget.dispatchEvent(new Event('groupsync'));
});
}); });
}, },
handleAttachment: function(attachment) { handleAttachment: function(attachment) {

View file

@ -223,28 +223,33 @@ MessageReceiver.prototype = {
return this.handleAttachment(attachmentPointer).then(function() { return this.handleAttachment(attachmentPointer).then(function() {
var groupBuffer = new GroupBuffer(attachmentPointer.data); var groupBuffer = new GroupBuffer(attachmentPointer.data);
var groupDetails = groupBuffer.next(); var groupDetails = groupBuffer.next();
var promises = [];
while (groupDetails !== undefined) { while (groupDetails !== undefined) {
(function(groupDetails) { var promise = (function(groupDetails) {
groupDetails.id = getString(groupDetails.id); groupDetails.id = getString(groupDetails.id);
textsecure.storage.groups.getGroup(groupDetails.id). return textsecure.storage.groups.getGroup(groupDetails.id).
then(function(existingGroup) { then(function(existingGroup) {
if (existingGroup === undefined) { if (existingGroup === undefined) {
return textsecure.storage.groups.createNewGroup( return textsecure.storage.groups.createNewGroup(
groupDetails.members, groupDetails.id groupDetails.members, groupDetails.id
); );
} else { } else {
return textsecure.storage.groups.updateNumbers( return textsecure.storage.groups.updateNumbers(
groupDetails.id, groupDetails.members groupDetails.id, groupDetails.members
); );
} }
}).then(function() { }).then(function() {
var ev = new Event('group'); var ev = new Event('group');
ev.groupDetails = groupDetails; ev.groupDetails = groupDetails;
eventTarget.dispatchEvent(ev); eventTarget.dispatchEvent(ev);
}); });
})(groupDetails); })(groupDetails);
groupDetails = groupBuffer.next(); groupDetails = groupBuffer.next();
promises.push(promise);
} }
Promise.all(promises).then(function() {
eventTarget.dispatchEvent(new Event('groupsync'));
});
}); });
}, },
handleAttachment: function(attachment) { handleAttachment: function(attachment) {