From 28fc5793a70dc5d2a848ba485b75c6bb5d942e9d Mon Sep 17 00:00:00 2001 From: Beaudan Date: Mon, 3 Dec 2018 13:39:02 +1100 Subject: [PATCH] More explicit function names, shifted friend request sent logic to more sensible place --- js/models/conversations.js | 49 +++++++++++++++---------------- js/models/messages.js | 2 +- libtextsecure/outgoing_message.js | 1 + 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/js/models/conversations.js b/js/models/conversations.js index 2de4beda0..54478ff9d 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -281,7 +281,7 @@ lastUpdated: this.get('timestamp'), unreadCount: this.get('unreadCount') || 0, isSelected: this.isSelected, - showFriendRequestIndicator: this.isPending(), + showFriendRequestIndicator: this.isPendingFriendRequest(), isBlocked: this.isBlocked(), lastMessage: { status: this.lastMessageStatus, @@ -434,20 +434,15 @@ return contact.isVerified(); }); }, - isNone() { + isFriendRequestStatusNone() { return this.get('friendRequestStatus') === FriendRequestStatusEnum.none; }, - hasInputBlocked() { + isPendingFriendRequest() { const status = this.get('friendRequestStatus'); return status === FriendRequestStatusEnum.requestSent || status === FriendRequestStatusEnum.requestReceived || status === FriendRequestStatusEnum.pendingSend; }, - isPending() { - const status = this.get('friendRequestStatus'); - return status === FriendRequestStatusEnum.requestSent || - status === FriendRequestStatusEnum.requestReceived; - }, hasSentFriendRequest() { return this.get('friendRequestStatus') === FriendRequestStatusEnum.requestSent; }, @@ -479,7 +474,7 @@ }, async setFriendRequestStatus(newStatus) { // Ensure that the new status is a valid FriendStatusEnum value - if (!Object.values(FriendRequestStatusEnum).some(v => v === newStatus)) + if (!(newStatus in Object.values(FriendRequestStatusEnum))) return; if (this.get('friendRequestStatus') !== newStatus) { this.set({ friendRequestStatus: newStatus }); @@ -563,7 +558,7 @@ await this.setFriendRequestStatus(FriendRequestStatusEnum.none); }, async onFriendRequestReceived() { - if (this.isNone()) { + if (this.isFriendRequestStatusNone()) { this.setFriendRequestStatus(FriendRequestStatusEnum.requestReceived); } else if (this.hasSentFriendRequest()) { await Promise.all([ @@ -966,7 +961,7 @@ async sendMessage(body, attachments, quote) { // Input should be blocked if there is a pending friend request - if (this.hasInputBlocked()) + if (this.isPendingFriendRequest()) return; const destination = this.id; const expireTimer = this.get('expireTimer'); @@ -1107,8 +1102,7 @@ expireTimer, profileKey, options - ), - message.isFriendRequest() + ) ) ) ); @@ -1116,34 +1110,39 @@ return true; }); }, - wrapSend(promise, isFriendRequest = false) { + wrapSend(promise) { return promise.then( async result => { // success if (result) { - if (isFriendRequest) - this.onFriendRequestSent(); - await this.handleMessageSendResult( - result.failoverNumbers, - result.unidentifiedDeliveries - ); + await this.handleMessageSendResult({ + ...result, + success: true, + }); } return result; }, async result => { // failure if (result) { - await this.handleMessageSendResult( - result.failoverNumbers, - result.unidentifiedDeliveries - ); + await this.handleMessageSendResult({ + ...result, + success: false, + }); } throw result; } ); }, - async handleMessageSendResult(failoverNumbers, unidentifiedDeliveries) { + async handleMessageSendResult({ + failoverNumbers, + unidentifiedDeliveries, + messageType, + success, + }) { + if (success && messageType === 'friend-request') + await this.onFriendRequestSent(); await Promise.all( (failoverNumbers || []).map(async number => { const conversation = ConversationController.get(number); diff --git a/js/models/messages.js b/js/models/messages.js index ec1a5e7ef..d528b524e 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -1383,7 +1383,7 @@ message.set({ friendStatus: 'accepted' }); await conversation.onFriendRequestAccepted(); window.libloki.sendFriendRequestAccepted(message.get('source')); - } else if (conversation.isNone()) { + } else if (conversation.isFriendRequestStatusNone()) { await conversation.onFriendRequestReceived(); } } else { diff --git a/libtextsecure/outgoing_message.js b/libtextsecure/outgoing_message.js index 86131eceb..0e4be306c 100644 --- a/libtextsecure/outgoing_message.js +++ b/libtextsecure/outgoing_message.js @@ -60,6 +60,7 @@ OutgoingMessage.prototype = { failoverNumbers: this.failoverNumbers, errors: this.errors, unidentifiedDeliveries: this.unidentifiedDeliveries, + messageType: this.messageType, }); } },