diff --git a/js/libtextsecure.js b/js/libtextsecure.js index 5c45cf9ca..d2a14b52a 100644 --- a/js/libtextsecure.js +++ b/js/libtextsecure.js @@ -38135,7 +38135,7 @@ axolotlInternal.RecipientRecord = function() { // Use textsecure.storage.devices.removeIdentityKeyForNumber (which calls this) instead _removeIdentityKeyForNumber: function(number) { - textsecure.storage.remove("sessions" + number); + return Promise.resolve(textsecure.storage.remove("sessions" + number)); }, }; @@ -38187,7 +38187,7 @@ axolotlInternal.RecipientRecord = function() { if (map === undefined) throw new Error("Tried to remove identity for unknown number"); textsecure.storage.remove("devices" + number); - textsecure.storage.sessions._removeIdentityKeyForNumber(number); + return textsecure.storage.sessions._removeIdentityKeyForNumber(number); }, getDeviceObject: function(encodedNumber) { diff --git a/js/models/conversations.js b/js/models/conversations.js index 5173d3486..8dfc164d8 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -241,12 +241,13 @@ throw 'No conflicts to resolve'; } - textsecure.storage.devices.removeIdentityKeyForNumber(number); - this.messageCollection.each(function(message) { - if (message.hasKeyConflict(number)) { - message.resolveConflict(number); - } - }); + return textsecure.storage.devices.removeIdentityKeyForNumber(number).then(function() { + this.messageCollection.each(function(message) { + if (message.hasKeyConflict(number)) { + message.resolveConflict(number); + } + }); + }.bind(this)); } }); diff --git a/js/views/key_conflict_dialogue_view.js b/js/views/key_conflict_dialogue_view.js index 7daa8b1ca..f1d42813a 100644 --- a/js/views/key_conflict_dialogue_view.js +++ b/js/views/key_conflict_dialogue_view.js @@ -41,8 +41,7 @@ }, resolve: function() { new Promise(function(resolve) { - this.conversation.resolveConflicts(this.model.number); - resolve(); + this.conversation.resolveConflicts(this.model.number).then(resolve); }.bind(this)); this.trigger('resolve'); this.remove(); diff --git a/libtextsecure/storage/devices.js b/libtextsecure/storage/devices.js index a34037c1b..db837cdae 100644 --- a/libtextsecure/storage/devices.js +++ b/libtextsecure/storage/devices.js @@ -64,7 +64,7 @@ // Use textsecure.storage.devices.removeIdentityKeyForNumber (which calls this) instead _removeIdentityKeyForNumber: function(number) { - textsecure.storage.remove("sessions" + number); + return Promise.resolve(textsecure.storage.remove("sessions" + number)); }, }; @@ -116,7 +116,7 @@ if (map === undefined) throw new Error("Tried to remove identity for unknown number"); textsecure.storage.remove("devices" + number); - textsecure.storage.sessions._removeIdentityKeyForNumber(number); + return textsecure.storage.sessions._removeIdentityKeyForNumber(number); }, getDeviceObject: function(encodedNumber) {