diff --git a/SignalMessaging/environment/AppSetup.m b/SignalMessaging/environment/AppSetup.m index 9776d4e83..3049e09a4 100644 --- a/SignalMessaging/environment/AppSetup.m +++ b/SignalMessaging/environment/AppSetup.m @@ -14,12 +14,12 @@ #import #import #import -#import #import #import #import #import #import +#import #import #import #import @@ -72,8 +72,8 @@ NS_ASSUME_NONNULL_BEGIN ContactDiscoveryService *contactDiscoveryService = [[ContactDiscoveryService alloc] initDefault]; OWSReadReceiptManager *readReceiptManager = [[OWSReadReceiptManager alloc] initWithPrimaryStorage:primaryStorage]; - OWSDeliveryReceiptManager *deliveryReceiptManager = - [[OWSDeliveryReceiptManager alloc] initWithPrimaryStorage:primaryStorage]; + OWSOutgoingReceiptManager *outgoingReceiptManager = + [[OWSOutgoingReceiptManager alloc] initWithPrimaryStorage:primaryStorage]; [Environment setShared:[[Environment alloc] initWithPreferences:preferences]]; @@ -96,7 +96,7 @@ NS_ASSUME_NONNULL_BEGIN disappearingMessagesJob:disappearingMessagesJob contactDiscoveryService:contactDiscoveryService disappearingMessagesJob:readReceiptManager - contactDiscoveryService:deliveryReceiptManager]]; + contactDiscoveryService:outgoingReceiptManager]]; appSpecificSingletonBlock(); diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index e4ede225b..d6f10173f 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -12,7 +12,6 @@ #import "OWSBlockingManager.h" #import "OWSCallMessageHandler.h" #import "OWSContact.h" -#import "OWSDeliveryReceiptManager.h" #import "OWSDevice.h" #import "OWSDisappearingConfigurationUpdateInfoMessage.h" #import "OWSDisappearingMessagesConfiguration.h" @@ -22,6 +21,7 @@ #import "OWSIncomingSentMessageTranscript.h" #import "OWSMessageSender.h" #import "OWSMessageUtils.h" +#import "OWSOutgoingReceiptManager.h" #import "OWSPrimaryStorage+SessionStore.h" #import "OWSPrimaryStorage.h" #import "OWSReadReceiptManager.h" @@ -132,10 +132,10 @@ NS_ASSUME_NONNULL_BEGIN return SSKEnvironment.shared.networkManager; } -- (OWSDeliveryReceiptManager *)deliveryReceiptManager { - OWSAssertDebug(SSKEnvironment.shared.deliveryReceiptManager); +- (OWSOutgoingReceiptManager *)outgoingReceiptManager { + OWSAssertDebug(SSKEnvironment.shared.outgoingReceiptManager); - return SSKEnvironment.shared.deliveryReceiptManager; + return SSKEnvironment.shared.outgoingReceiptManager; } #pragma mark - @@ -503,7 +503,7 @@ NS_ASSUME_NONNULL_BEGIN // Send delivery receipts for "valid data" messages received via UD. BOOL wasReceivedByUD = envelope.type == SSKProtoEnvelopeTypeUnidentifiedSender; if (wasReceivedByUD) { - [self.deliveryReceiptManager envelopeWasReceived:envelope]; + [self.outgoingReceiptManager enqueueDeliveryReceiptForEnvelope:envelope]; } } diff --git a/SignalServiceKit/src/Messages/OWSDeliveryReceiptManager.h b/SignalServiceKit/src/Messages/OWSOutgoingReceiptManager.h similarity index 74% rename from SignalServiceKit/src/Messages/OWSDeliveryReceiptManager.h rename to SignalServiceKit/src/Messages/OWSOutgoingReceiptManager.h index ea3452a8b..6a9021e87 100644 --- a/SignalServiceKit/src/Messages/OWSDeliveryReceiptManager.h +++ b/SignalServiceKit/src/Messages/OWSOutgoingReceiptManager.h @@ -7,13 +7,13 @@ NS_ASSUME_NONNULL_BEGIN @class OWSPrimaryStorage; @class SSKProtoEnvelope; -@interface OWSDeliveryReceiptManager : NSObject +@interface OWSOutgoingReceiptManager : NSObject - (instancetype)init NS_UNAVAILABLE; - (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER; + (instancetype)sharedManager; -- (void)envelopeWasReceived:(SSKProtoEnvelope *)envelope; +- (void)enqueueDeliveryReceiptForEnvelope:(SSKProtoEnvelope *)envelope; @end diff --git a/SignalServiceKit/src/Messages/OWSDeliveryReceiptManager.m b/SignalServiceKit/src/Messages/OWSOutgoingReceiptManager.m similarity index 91% rename from SignalServiceKit/src/Messages/OWSDeliveryReceiptManager.m rename to SignalServiceKit/src/Messages/OWSOutgoingReceiptManager.m index 1da548cd8..45da571b5 100644 --- a/SignalServiceKit/src/Messages/OWSDeliveryReceiptManager.m +++ b/SignalServiceKit/src/Messages/OWSOutgoingReceiptManager.m @@ -2,7 +2,7 @@ // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // -#import "OWSDeliveryReceiptManager.h" +#import "OWSOutgoingReceiptManager.h" #import "AppReadiness.h" #import "OWSMessageSender.h" #import "OWSPrimaryStorage.h" @@ -15,9 +15,9 @@ NS_ASSUME_NONNULL_BEGIN -NSString *const kDeliveryReceiptManagerCollection = @"kDeliveryReceiptManagerCollection"; +NSString *const kOutgoingReceiptManagerCollection = @"kOutgoingReceiptManagerCollection"; -@interface OWSDeliveryReceiptManager () +@interface OWSOutgoingReceiptManager () @property (nonatomic, readonly) YapDatabaseConnection *dbConnection; @@ -30,12 +30,12 @@ NSString *const kDeliveryReceiptManagerCollection = @"kDeliveryReceiptManagerCol #pragma mark - -@implementation OWSDeliveryReceiptManager +@implementation OWSOutgoingReceiptManager + (instancetype)sharedManager { - OWSAssert(SSKEnvironment.shared.deliveryReceiptManager); + OWSAssert(SSKEnvironment.shared.outgoingReceiptManager); - return SSKEnvironment.shared.deliveryReceiptManager; + return SSKEnvironment.shared.outgoingReceiptManager; } - (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage { @@ -114,7 +114,7 @@ NSString *const kDeliveryReceiptManagerCollection = @"kDeliveryReceiptManagerCol NSMutableDictionary *> *deliveryReceiptMap = [NSMutableDictionary new]; [self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { - [transaction enumerateKeysAndObjectsInCollection:kDeliveryReceiptManagerCollection + [transaction enumerateKeysAndObjectsInCollection:kOutgoingReceiptManagerCollection usingBlock:^(NSString *key, id object, BOOL *stop) { NSString *recipientId = key; NSSet *timestamps = object; @@ -179,7 +179,7 @@ NSString *const kDeliveryReceiptManagerCollection = @"kDeliveryReceiptManagerCol [completionPromise retainUntilComplete]; } -- (void)envelopeWasReceived:(SSKProtoEnvelope *)envelope { +- (void)enqueueDeliveryReceiptForEnvelope:(SSKProtoEnvelope *)envelope { OWSLogVerbose(@""); [self enqueueDeliveryReceiptWithRecipientId:envelope.source timestamp:envelope.timestamp]; @@ -199,12 +199,12 @@ NSString *const kDeliveryReceiptManagerCollection = @"kDeliveryReceiptManagerCol dispatch_async(self.serialQueue, ^{ [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { NSSet *_Nullable oldTimestamps = [transaction objectForKey:recipientId - inCollection:kDeliveryReceiptManagerCollection]; + inCollection:kOutgoingReceiptManagerCollection]; NSMutableSet *newTimestamps = (oldTimestamps ? [oldTimestamps mutableCopy] : [NSMutableSet new]); [newTimestamps addObject:@(timestamp)]; - [transaction setObject:newTimestamps forKey:recipientId inCollection:kDeliveryReceiptManagerCollection]; + [transaction setObject:newTimestamps forKey:recipientId inCollection:kOutgoingReceiptManagerCollection]; }]; [self scheduleProcessing]; @@ -223,15 +223,15 @@ NSString *const kDeliveryReceiptManagerCollection = @"kDeliveryReceiptManagerCol dispatch_async(self.serialQueue, ^{ [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { NSSet *_Nullable oldTimestamps = [transaction objectForKey:recipientId - inCollection:kDeliveryReceiptManagerCollection]; + inCollection:kOutgoingReceiptManagerCollection]; NSMutableSet *newTimestamps = (oldTimestamps ? [oldTimestamps mutableCopy] : [NSMutableSet new]); [newTimestamps minusSet:timestamps]; if (newTimestamps.count > 0) { - [transaction setObject:newTimestamps forKey:recipientId inCollection:kDeliveryReceiptManagerCollection]; + [transaction setObject:newTimestamps forKey:recipientId inCollection:kOutgoingReceiptManagerCollection]; } else { - [transaction removeObjectForKey:recipientId inCollection:kDeliveryReceiptManagerCollection]; + [transaction removeObjectForKey:recipientId inCollection:kOutgoingReceiptManagerCollection]; } }]; }); diff --git a/SignalServiceKit/src/SSKEnvironment.h b/SignalServiceKit/src/SSKEnvironment.h index ca862ae96..53495deae 100644 --- a/SignalServiceKit/src/SSKEnvironment.h +++ b/SignalServiceKit/src/SSKEnvironment.h @@ -9,13 +9,13 @@ NS_ASSUME_NONNULL_BEGIN @class OWS2FAManager; @class OWSBatchMessageProcessor; @class OWSBlockingManager; -@class OWSDeliveryReceiptManager; @class OWSDisappearingMessagesJob; @class OWSIdentityManager; @class OWSMessageDecrypter; @class OWSMessageManager; @class OWSMessageReceiver; @class OWSMessageSender; +@class OWSOutgoingReceiptManager; @class OWSPrimaryStorage; @class OWSReadReceiptManager; @class TSAccountManager; @@ -50,7 +50,7 @@ NS_ASSUME_NONNULL_BEGIN disappearingMessagesJob:(OWSDisappearingMessagesJob *)disappearingMessagesJob contactDiscoveryService:(ContactDiscoveryService *)contactDiscoveryService disappearingMessagesJob:(OWSReadReceiptManager *)readReceiptManager - contactDiscoveryService:(OWSDeliveryReceiptManager *)deliveryReceiptManager NS_DESIGNATED_INITIALIZER; + contactDiscoveryService:(OWSOutgoingReceiptManager *)outgoingReceiptManager NS_DESIGNATED_INITIALIZER; - (instancetype)init NS_UNAVAILABLE; @@ -82,7 +82,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly) OWSDisappearingMessagesJob *disappearingMessagesJob; @property (nonatomic, readonly) ContactDiscoveryService *contactDiscoveryService; @property (nonatomic, readonly) OWSReadReceiptManager *readReceiptManager; -@property (nonatomic, readonly) OWSDeliveryReceiptManager *deliveryReceiptManager; +@property (nonatomic, readonly) OWSOutgoingReceiptManager *outgoingReceiptManager; // This property is configured after Environment is created. @property (atomic, nullable) id callMessageHandler; diff --git a/SignalServiceKit/src/SSKEnvironment.m b/SignalServiceKit/src/SSKEnvironment.m index 92a471120..beee9cc3e 100644 --- a/SignalServiceKit/src/SSKEnvironment.m +++ b/SignalServiceKit/src/SSKEnvironment.m @@ -31,7 +31,7 @@ static SSKEnvironment *sharedSSKEnvironment; @property (nonatomic) OWSDisappearingMessagesJob *disappearingMessagesJob; @property (nonatomic) ContactDiscoveryService *contactDiscoveryService; @property (nonatomic) OWSReadReceiptManager *readReceiptManager; -@property (nonatomic) OWSDeliveryReceiptManager *deliveryReceiptManager; +@property (nonatomic) OWSOutgoingReceiptManager *outgoingReceiptManager; @end @@ -62,7 +62,7 @@ static SSKEnvironment *sharedSSKEnvironment; disappearingMessagesJob:(OWSDisappearingMessagesJob *)disappearingMessagesJob contactDiscoveryService:(ContactDiscoveryService *)contactDiscoveryService disappearingMessagesJob:(OWSReadReceiptManager *)readReceiptManager - contactDiscoveryService:(OWSDeliveryReceiptManager *)deliveryReceiptManager { + contactDiscoveryService:(OWSOutgoingReceiptManager *)outgoingReceiptManager { self = [super init]; if (!self) { return self; @@ -87,7 +87,7 @@ static SSKEnvironment *sharedSSKEnvironment; OWSAssertDebug(disappearingMessagesJob); OWSAssertDebug(contactDiscoveryService); OWSAssertDebug(readReceiptManager); - OWSAssertDebug(deliveryReceiptManager); + OWSAssertDebug(outgoingReceiptManager); _contactsManager = contactsManager; _messageSender = messageSender; @@ -108,7 +108,7 @@ static SSKEnvironment *sharedSSKEnvironment; _disappearingMessagesJob = disappearingMessagesJob; _contactDiscoveryService = contactDiscoveryService; _readReceiptManager = readReceiptManager; - _deliveryReceiptManager = deliveryReceiptManager; + _outgoingReceiptManager = outgoingReceiptManager; return self; } diff --git a/SignalServiceKit/src/Tests/MockSSKEnvironment.m b/SignalServiceKit/src/Tests/MockSSKEnvironment.m index b32eaebc7..a1699492d 100644 --- a/SignalServiceKit/src/Tests/MockSSKEnvironment.m +++ b/SignalServiceKit/src/Tests/MockSSKEnvironment.m @@ -7,7 +7,6 @@ #import "OWS2FAManager.h" #import "OWSBatchMessageProcessor.h" #import "OWSBlockingManager.h" -#import "OWSDeliveryReceiptManager.h" #import "OWSDisappearingMessagesJob.h" #import "OWSFakeCallMessageHandler.h" #import "OWSFakeContactsManager.h" @@ -20,6 +19,7 @@ #import "OWSMessageDecrypter.h" #import "OWSMessageManager.h" #import "OWSMessageReceiver.h" +#import "OWSOutgoingReceiptManager.h" #import "OWSPrimaryStorage.h" #import "OWSReadReceiptManager.h" #import "TSAccountManager.h" @@ -70,8 +70,8 @@ NS_ASSUME_NONNULL_BEGIN [[OWSDisappearingMessagesJob alloc] initWithPrimaryStorage:primaryStorage]; ContactDiscoveryService *contactDiscoveryService = [[ContactDiscoveryService alloc] initDefault]; OWSReadReceiptManager *readReceiptManager = [[OWSReadReceiptManager alloc] initWithPrimaryStorage:primaryStorage]; - OWSDeliveryReceiptManager *deliveryReceiptManager = - [[OWSDeliveryReceiptManager alloc] initWithPrimaryStorage:primaryStorage]; + OWSOutgoingReceiptManager *outgoingReceiptManager = + [[OWSOutgoingReceiptManager alloc] initWithPrimaryStorage:primaryStorage]; self = [super initWithContactsManager:contactsManager messageSender:messageSender @@ -92,7 +92,7 @@ NS_ASSUME_NONNULL_BEGIN disappearingMessagesJob:disappearingMessagesJob contactDiscoveryService:contactDiscoveryService disappearingMessagesJob:readReceiptManager - contactDiscoveryService:deliveryReceiptManager]; + contactDiscoveryService:outgoingReceiptManager]; if (!self) { return nil; }