Rename contact share class to contact.

pull/1/head
Matthew Chen 7 years ago
parent 796958d87f
commit 0d8cfc5403

@ -13,7 +13,7 @@
#import <SignalServiceKit/MIMETypeUtil.h>
#import <SignalServiceKit/NSDate+OWS.h>
#import <SignalServiceKit/OWSBatchMessageProcessor.h>
#import <SignalServiceKit/OWSContactShare+Private.h>
#import <SignalServiceKit/OWSContact+Private.h>
#import <SignalServiceKit/OWSDisappearingConfigurationUpdateInfoMessage.h>
#import <SignalServiceKit/OWSDisappearingMessagesConfiguration.h>
#import <SignalServiceKit/OWSMessageUtils.h>
@ -820,7 +820,7 @@ NS_ASSUME_NONNULL_BEGIN
isDelivered:YES
isRead:NO
quotedMessage:nil
contactShare:nil
contact:nil
transaction:transaction];
// This is a hack to "back-date" the message.
@ -1753,7 +1753,7 @@ NS_ASSUME_NONNULL_BEGIN
isDelivered:NO
isRead:NO
quotedMessage:nil
contactShare:nil
contact:nil
transaction:transaction];
}];
}
@ -1801,7 +1801,7 @@ NS_ASSUME_NONNULL_BEGIN
isDelivered:isDelivered
isRead:isRead
quotedMessage:nil
contactShare:nil
contact:nil
transaction:transaction];
}];
}
@ -1975,7 +1975,7 @@ NS_ASSUME_NONNULL_BEGIN
isDelivered:quotedMessageIsDelivered
isRead:quotedMessageIsRead
quotedMessage:nil
contactShare:nil
contact:nil
transaction:transaction];
OWSAssert(messageToQuote);
quotedMessage = [[OWSQuotedReplyModel quotedReplyForMessage:messageToQuote transaction:transaction]
@ -2000,7 +2000,7 @@ NS_ASSUME_NONNULL_BEGIN
isDelivered:replyIsDelivered
isRead:replyIsRead
quotedMessage:quotedMessage
contactShare:nil
contact:nil
transaction:transaction];
}
}
@ -2849,7 +2849,7 @@ NS_ASSUME_NONNULL_BEGIN
isDelivered:NO
isRead:NO
quotedMessage:nil
contactShare:nil
contact:nil
transaction:transaction];
[message setReceivedAtTimestamp:(uint64_t)((int64_t)[NSDate ows_millisecondTimeStamp] + dateOffset)];
[message saveWithTransaction:transaction];
@ -2900,18 +2900,18 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
typedef OWSContactShare * (^OWSContactShareBlock)(void);
typedef OWSContact * (^OWSContactBlock)(void);
+ (DebugUIMessagesAction *)fakeShareContactMessageAction:(TSThread *)thread
label:(NSString *)label
contactShareBlock:(OWSContactShareBlock)contactShareBlock
contactBlock:(OWSContactBlock)contactBlock
{
OWSAssert(thread);
return [DebugUIMessagesSingleAction
actionWithLabel:[NSString stringWithFormat:@"Fake Contact Share (%@)", label]
unstaggeredActionBlock:^(NSUInteger index, YapDatabaseReadWriteTransaction *transaction) {
OWSContactShare *contactShare = contactShareBlock();
OWSContact *contact = contactBlock();
TSOutgoingMessage *message = [self createFakeOutgoingMessage:thread
messageBody:nil
fakeAssetLoader:nil
@ -2919,7 +2919,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isDelivered:NO
isRead:NO
quotedMessage:nil
contactShare:contactShare
contact:contact
transaction:transaction];
[message saveWithTransaction:transaction];
}];
@ -2939,90 +2939,89 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
[actions addObject:[self fakeShareContactMessageAction:thread
label:@"Name & Number"
contactShareBlock:^{
OWSContactShare *contactShare = [OWSContactShare new];
contactShare.givenName = @"Alice";
OWSContactSharePhoneNumber *phoneNumber = [OWSContactSharePhoneNumber new];
phoneNumber.phoneType = OWSContactSharePhoneType_Home;
phoneNumber.phoneNumber = @"+13213214321";
contactShare.phoneNumbers = @[
phoneNumber,
];
return contactShare;
}]];
contactBlock:^{
OWSContact *contact = [OWSContact new];
contact.givenName = @"Alice";
OWSContactPhoneNumber *phoneNumber = [OWSContactPhoneNumber new];
phoneNumber.phoneType = OWSContactPhoneType_Home;
phoneNumber.phoneNumber = @"+13213214321";
contact.phoneNumbers = @[
phoneNumber,
];
return contact;
}]];
[actions addObject:[self fakeShareContactMessageAction:thread
label:@"Name & Email"
contactShareBlock:^{
OWSContactShare *contactShare = [OWSContactShare new];
contactShare.givenName = @"Bob";
OWSContactShareEmail *email = [OWSContactShareEmail new];
email.emailType = OWSContactShareEmailType_Home;
email.email = @"a@b.com";
contactShare.emails = @[
email,
];
return contactShare;
}]];
[actions
addObject:[self fakeShareContactMessageAction:thread
label:@"Complicated"
contactShareBlock:^{
OWSContactShare *contactShare = [OWSContactShare new];
contactShare.givenName = @"Alice";
contactShare.familyName = @"Carol";
contactShare.middleName = @"Bob";
contactShare.namePrefix = @"Ms.";
contactShare.nameSuffix = @"Esq.";
OWSContactSharePhoneNumber *phoneNumber1 = [OWSContactSharePhoneNumber new];
phoneNumber1.phoneType = OWSContactSharePhoneType_Home;
phoneNumber1.phoneNumber = @"+13213214321";
OWSContactSharePhoneNumber *phoneNumber2 = [OWSContactSharePhoneNumber new];
phoneNumber2.phoneType = OWSContactSharePhoneType_Custom;
phoneNumber2.label = @"Carphone";
phoneNumber2.phoneNumber = @"+13332221111";
contactShare.phoneNumbers = @[
phoneNumber1,
phoneNumber2,
];
OWSContactShareEmail *email1 = [OWSContactShareEmail new];
email1.emailType = OWSContactShareEmailType_Home;
email1.email = @"a@b.com";
OWSContactShareEmail *email2 = [OWSContactShareEmail new];
email2.emailType = OWSContactShareEmailType_Custom;
email2.label = @"customer support";
email2.email = @"a@b.com";
contactShare.emails = @[
email1,
email2,
];
OWSContactShareAddress *address1 = [OWSContactShareAddress new];
address1.addressType = OWSContactShareAddressType_Home;
address1.street = @"123 home st.";
address1.neighborhood = @"round the bend.";
address1.city = @"homeville";
address1.region = @"HO";
address1.postcode = @"12345";
address1.country = @"USA";
OWSContactShareAddress *address2 = [OWSContactShareAddress new];
address2.addressType = OWSContactShareAddressType_Custom;
address2.label = @"Otra casa";
address2.pobox = @"caja 123";
address2.street = @"123 casa calle";
address2.city = @"barrio norte";
address2.region = @"AB";
address2.postcode = @"53421";
address2.country = @"MX";
contactShare.addresses = @[
address1,
address2,
];
// TODO: Avatar
return contactShare;
}]];
contactBlock:^{
OWSContact *contact = [OWSContact new];
contact.givenName = @"Bob";
OWSContactEmail *email = [OWSContactEmail new];
email.emailType = OWSContactEmailType_Home;
email.email = @"a@b.com";
contact.emails = @[
email,
];
return contact;
}]];
[actions addObject:[self fakeShareContactMessageAction:thread
label:@"Complicated"
contactBlock:^{
OWSContact *contact = [OWSContact new];
contact.givenName = @"Alice";
contact.familyName = @"Carol";
contact.middleName = @"Bob";
contact.namePrefix = @"Ms.";
contact.nameSuffix = @"Esq.";
OWSContactPhoneNumber *phoneNumber1 = [OWSContactPhoneNumber new];
phoneNumber1.phoneType = OWSContactPhoneType_Home;
phoneNumber1.phoneNumber = @"+13213214321";
OWSContactPhoneNumber *phoneNumber2 = [OWSContactPhoneNumber new];
phoneNumber2.phoneType = OWSContactPhoneType_Custom;
phoneNumber2.label = @"Carphone";
phoneNumber2.phoneNumber = @"+13332221111";
contact.phoneNumbers = @[
phoneNumber1,
phoneNumber2,
];
OWSContactEmail *email1 = [OWSContactEmail new];
email1.emailType = OWSContactEmailType_Home;
email1.email = @"a@b.com";
OWSContactEmail *email2 = [OWSContactEmail new];
email2.emailType = OWSContactEmailType_Custom;
email2.label = @"customer support";
email2.email = @"a@b.com";
contact.emails = @[
email1,
email2,
];
OWSContactAddress *address1 = [OWSContactAddress new];
address1.addressType = OWSContactAddressType_Home;
address1.street = @"123 home st.";
address1.neighborhood = @"round the bend.";
address1.city = @"homeville";
address1.region = @"HO";
address1.postcode = @"12345";
address1.country = @"USA";
OWSContactAddress *address2 = [OWSContactAddress new];
address2.addressType = OWSContactAddressType_Custom;
address2.label = @"Otra casa";
address2.pobox = @"caja 123";
address2.street = @"123 casa calle";
address2.city = @"barrio norte";
address2.region = @"AB";
address2.postcode = @"53421";
address2.country = @"MX";
contact.addresses = @[
address1,
address2,
];
// TODO: Avatar
return contact;
}]];
return actions;
}
@ -3103,7 +3102,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
[ThreadUtil sendMessageWithAttachment:attachment
inThread:thread
quotedReplyModel:nil
contactShare:nil
contact:nil
messageSender:messageSender
ignoreErrors:YES
completion:nil];
@ -3413,7 +3412,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
attachmentIds:@[]
expiresInSeconds:0
quotedMessage:nil
contactShare:nil];
contact:nil];
[message markAsReadNowWithSendReadReceipt:NO transaction:transaction];
break;
}
@ -3425,7 +3424,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isDelivered:NO
isRead:NO
quotedMessage:nil
contactShare:nil
contact:nil
transaction:transaction];
break;
}
@ -3453,7 +3452,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
]
expiresInSeconds:0
quotedMessage:nil
contactShare:nil];
contact:nil];
[message markAsReadNowWithSendReadReceipt:NO transaction:transaction];
break;
}
@ -3479,7 +3478,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isRead:NO
isVoiceMessage:NO
quotedMessage:nil
contactShare:nil
contact:nil
transaction:transaction];
break;
}
@ -3841,7 +3840,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
DDLogError(@"%@ resurrectNewOutgoingMessages2 timestamp: %llu.", self.logTag, message.timestamp);
[messages addObject:message];
}
@ -3907,7 +3906,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
attachmentIds:[NSMutableArray new]
expiresInSeconds:0
quotedMessage:nil
contactShare:nil];
contact:nil];
[message markAsReadNowWithSendReadReceipt:NO transaction:transaction];
}
{
@ -3921,7 +3920,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
[message saveWithTransaction:transaction];
[message updateWithFakeMessageState:TSOutgoingMessageStateSent transaction:transaction];
[message updateWithSentRecipient:recipientId transaction:transaction];
@ -4100,7 +4099,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isDelivered:(BOOL)isDelivered
isRead:(BOOL)isRead
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare
contact:(nullable OWSContact *)contact
transaction:(YapDatabaseReadWriteTransaction *)transaction
{
OWSAssert(thread);
@ -4126,7 +4125,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isRead:isRead
isVoiceMessage:attachment.isVoiceMessage
quotedMessage:quotedMessage
contactShare:contactShare
contact:contact
transaction:transaction];
}
@ -4139,12 +4138,12 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isRead:(BOOL)isRead
isVoiceMessage:(BOOL)isVoiceMessage
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare
contact:(nullable OWSContact *)contact
transaction:(YapDatabaseReadWriteTransaction *)transaction
{
OWSAssert(thread);
OWSAssert(transaction);
OWSAssert(messageBody.length > 0 || attachmentId.length > 0 || contactShare);
OWSAssert(messageBody.length > 0 || attachmentId.length > 0 || contact);
NSMutableArray<NSString *> *attachmentIds = [NSMutableArray new];
if (attachmentId) {
@ -4161,7 +4160,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
isVoiceMessage:isVoiceMessage
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:quotedMessage
contactShare:contactShare];
contact:contact];
if (attachmentId.length > 0 && filename.length > 0) {
message.attachmentFilenameMap[attachmentId] = filename;
@ -4249,7 +4248,7 @@ typedef OWSContactShare * (^OWSContactShareBlock)(void);
attachmentIds:attachmentIds
expiresInSeconds:0
quotedMessage:quotedMessage
contactShare:nil];
contact:nil];
[message markAsReadNowWithSendReadReceipt:NO transaction:transaction];
return message;
}

@ -44,7 +44,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@class OWSContactShare;
@class OWSContact;
@class OWSQuotedReplyModel;
@class TSOutgoingMessage;
@ -72,7 +72,7 @@ NS_ASSUME_NONNULL_BEGIN
+ (TSOutgoingMessage *)sendMessageWithAttachment:(SignalAttachment *)attachment
inThread:(TSThread *)thread
quotedReplyModel:(nullable OWSQuotedReplyModel *)quotedReplyModel
contactShare:(nullable OWSContactShare *)contactShare
contact:(nullable OWSContact *)contact
messageSender:(OWSMessageSender *)messageSender
ignoreErrors:(BOOL)ignoreErrors
completion:(void (^_Nullable)(NSError *_Nullable error))completion;

@ -107,7 +107,7 @@ NS_ASSUME_NONNULL_BEGIN
return [self sendMessageWithAttachment:attachment
inThread:thread
quotedReplyModel:quotedReplyModel
contactShare:nil
contact:nil
messageSender:messageSender
ignoreErrors:NO
completion:completion];
@ -116,7 +116,7 @@ NS_ASSUME_NONNULL_BEGIN
+ (TSOutgoingMessage *)sendMessageWithAttachment:(SignalAttachment *)attachment
inThread:(TSThread *)thread
quotedReplyModel:(nullable OWSQuotedReplyModel *)quotedReplyModel
contactShare:(nullable OWSContactShare *)contactShare
contact:(nullable OWSContact *)contact
messageSender:(OWSMessageSender *)messageSender
ignoreErrors:(BOOL)ignoreErrors
completion:(void (^_Nullable)(NSError *_Nullable error))completion
@ -142,7 +142,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:[attachment isVoiceMessage]
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:[quotedReplyModel buildQuotedMessage]
contactShare:contactShare];
contact:contact];
[messageSender enqueueAttachment:attachment.dataSource
contentType:attachment.mimeType

@ -30,7 +30,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;
}

@ -96,7 +96,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:transcript.quotedMessage
contactShare:transcript.contactShare];
contact:transcript.contact];
// TODO: When written, desktop didn't yet support sending quotedMessages, so we didn't have a
// good way to test the handling of transcripts with a quotedMessage. This assertion can be delete

@ -4,7 +4,7 @@
NS_ASSUME_NONNULL_BEGIN
@class OWSContactShare;
@class OWSContact;
@class OWSSignalServiceProtosAttachmentPointer;
@class OWSSignalServiceProtosDataMessage;
@class OWSSignalServiceProtosSyncMessageSent;
@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) NSArray<OWSSignalServiceProtosAttachmentPointer *> *attachmentPointerProtos;
@property (nonatomic, readonly) TSThread *thread;
@property (nonatomic, readonly) TSQuotedMessage *quotedMessage;
@property (nonatomic, readonly) OWSContactShare *contactShare;
@property (nonatomic, readonly) OWSContact *contact;
@end

@ -3,7 +3,7 @@
//
#import "OWSIncomingSentMessageTranscript.h"
#import "OWSContactShare.h"
#import "OWSContact.h"
#import "OWSMessageManager.h"
#import "OWSPrimaryStorage.h"
#import "OWSSignalServiceProtos.pb.h"
@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN
_quotedMessage =
[TSQuotedMessage quotedMessageForDataMessage:_dataMessage thread:_thread relay:relay transaction:transaction];
_contactShare = [OWSContactShare contactShareForDataMessage:_dataMessage transaction:transaction];
_contact = [OWSContact contactForDataMessage:_dataMessage transaction:transaction];
return self;
}

@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;

@ -39,7 +39,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;
}

@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
}
- (OWSSignalServiceProtosSyncMessageBuilder *)syncMessageBuilder

@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;
}

@ -2,15 +2,15 @@
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "OWSContactShare.h"
#import "OWSContact.h"
NS_ASSUME_NONNULL_BEGIN
// These private interfaces expose setter accessors to facilitate
// construction of fake messages, etc.
@interface OWSContactSharePhoneNumber (Private)
@interface OWSContactPhoneNumber (Private)
@property (nonatomic) OWSContactSharePhoneType phoneType;
@property (nonatomic) OWSContactPhoneType phoneType;
@property (nonatomic, nullable) NSString *label;
@property (nonatomic) NSString *phoneNumber;
@ -19,9 +19,9 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@interface OWSContactShareEmail (Private)
@interface OWSContactEmail (Private)
@property (nonatomic) OWSContactShareEmailType emailType;
@property (nonatomic) OWSContactEmailType emailType;
@property (nonatomic, nullable) NSString *label;
@property (nonatomic) NSString *email;
@ -30,9 +30,9 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@interface OWSContactShareAddress (Private)
@interface OWSContactAddress (Private)
@property (nonatomic) OWSContactShareAddressType addressType;
@property (nonatomic) OWSContactAddressType addressType;
@property (nonatomic, nullable) NSString *label;
@property (nonatomic, nullable) NSString *street;
@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@interface OWSContactShare (Private)
@interface OWSContact (Private)
@property (nonatomic, nullable) NSString *givenName;
@property (nonatomic, nullable) NSString *familyName;
@ -55,9 +55,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, nullable) NSString *namePrefix;
@property (nonatomic, nullable) NSString *middleName;
@property (nonatomic, nullable) NSArray<OWSContactSharePhoneNumber *> *phoneNumbers;
@property (nonatomic, nullable) NSArray<OWSContactShareEmail *> *emails;
@property (nonatomic, nullable) NSArray<OWSContactShareAddress *> *addresses;
@property (nonatomic, nullable) NSArray<OWSContactPhoneNumber *> *phoneNumbers;
@property (nonatomic, nullable) NSArray<OWSContactEmail *> *emails;
@property (nonatomic, nullable) NSArray<OWSContactAddress *> *addresses;
@property (nonatomic, nullable) TSAttachment *avatar;
@property (nonatomic) BOOL isProfileAvatar;

@ -10,17 +10,17 @@ NS_ASSUME_NONNULL_BEGIN
@class TSAttachment;
@class YapDatabaseReadWriteTransaction;
typedef NS_ENUM(NSUInteger, OWSContactSharePhoneType) {
OWSContactSharePhoneType_Home = 1,
OWSContactSharePhoneType_Mobile,
OWSContactSharePhoneType_Work,
OWSContactSharePhoneType_Custom,
typedef NS_ENUM(NSUInteger, OWSContactPhoneType) {
OWSContactPhoneType_Home = 1,
OWSContactPhoneType_Mobile,
OWSContactPhoneType_Work,
OWSContactPhoneType_Custom,
};
@interface OWSContactSharePhoneNumber : MTLModel
@interface OWSContactPhoneNumber : MTLModel
@property (nonatomic, readonly) OWSContactSharePhoneType phoneType;
// Applies in the OWSContactSharePhoneType_Custom case.
@property (nonatomic, readonly) OWSContactPhoneType phoneType;
// Applies in the OWSContactPhoneType_Custom case.
@property (nonatomic, readonly, nullable) NSString *label;
@property (nonatomic, readonly) NSString *phoneNumber;
@ -31,17 +31,17 @@ typedef NS_ENUM(NSUInteger, OWSContactSharePhoneType) {
#pragma mark -
typedef NS_ENUM(NSUInteger, OWSContactShareEmailType) {
OWSContactShareEmailType_Home = 1,
OWSContactShareEmailType_Mobile,
OWSContactShareEmailType_Work,
OWSContactShareEmailType_Custom,
typedef NS_ENUM(NSUInteger, OWSContactEmailType) {
OWSContactEmailType_Home = 1,
OWSContactEmailType_Mobile,
OWSContactEmailType_Work,
OWSContactEmailType_Custom,
};
@interface OWSContactShareEmail : MTLModel
@interface OWSContactEmail : MTLModel
@property (nonatomic, readonly) OWSContactShareEmailType emailType;
// Applies in the OWSContactShareEmailType_Custom case.
@property (nonatomic, readonly) OWSContactEmailType emailType;
// Applies in the OWSContactEmailType_Custom case.
@property (nonatomic, readonly, nullable) NSString *label;
@property (nonatomic, readonly) NSString *email;
@ -52,16 +52,16 @@ typedef NS_ENUM(NSUInteger, OWSContactShareEmailType) {
#pragma mark -
typedef NS_ENUM(NSUInteger, OWSContactShareAddressType) {
OWSContactShareAddressType_Home = 1,
OWSContactShareAddressType_Work,
OWSContactShareAddressType_Custom,
typedef NS_ENUM(NSUInteger, OWSContactAddressType) {
OWSContactAddressType_Home = 1,
OWSContactAddressType_Work,
OWSContactAddressType_Custom,
};
@interface OWSContactShareAddress : MTLModel
@interface OWSContactAddress : MTLModel
@property (nonatomic, readonly) OWSContactShareAddressType addressType;
// Applies in the OWSContactShareAddressType_Custom case.
@property (nonatomic, readonly) OWSContactAddressType addressType;
// Applies in the OWSContactAddressType_Custom case.
@property (nonatomic, readonly, nullable) NSString *label;
@property (nonatomic, readonly, nullable) NSString *street;
@ -78,7 +78,7 @@ typedef NS_ENUM(NSUInteger, OWSContactShareAddressType) {
#pragma mark -
@interface OWSContactShare : MTLModel
@interface OWSContact : MTLModel
@property (nonatomic, readonly, nullable) NSString *givenName;
@property (nonatomic, readonly, nullable) NSString *familyName;
@ -86,9 +86,9 @@ typedef NS_ENUM(NSUInteger, OWSContactShareAddressType) {
@property (nonatomic, readonly, nullable) NSString *namePrefix;
@property (nonatomic, readonly, nullable) NSString *middleName;
@property (nonatomic, readonly, nullable) NSArray<OWSContactSharePhoneNumber *> *phoneNumbers;
@property (nonatomic, readonly, nullable) NSArray<OWSContactShareEmail *> *emails;
@property (nonatomic, readonly, nullable) NSArray<OWSContactShareAddress *> *addresses;
@property (nonatomic, readonly, nullable) NSArray<OWSContactPhoneNumber *> *phoneNumbers;
@property (nonatomic, readonly, nullable) NSArray<OWSContactEmail *> *emails;
@property (nonatomic, readonly, nullable) NSArray<OWSContactAddress *> *addresses;
// TODO: This is provisional.
@property (nonatomic, readonly, nullable) TSAttachment *avatar;
@ -97,8 +97,8 @@ typedef NS_ENUM(NSUInteger, OWSContactShareAddressType) {
- (instancetype)init NS_UNAVAILABLE;
+ (OWSContactShare *_Nullable)contactShareForDataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
transaction:(YapDatabaseReadWriteTransaction *)transaction;
+ (OWSContact *_Nullable)contactForDataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
transaction:(YapDatabaseReadWriteTransaction *)transaction;
- (BOOL)isValid;

@ -2,9 +2,9 @@
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "OWSContactShare.h"
#import "OWSContact.h"
#import "NSString+SSK.h"
#import "OWSContactShare+Private.h"
#import "OWSContact+Private.h"
#import "OWSSignalServiceProtos.pb.h"
#import "PhoneNumber.h"
#import "TSAttachment.h"
@ -14,9 +14,9 @@
NS_ASSUME_NONNULL_BEGIN
@interface OWSContactSharePhoneNumber ()
@interface OWSContactPhoneNumber ()
@property (nonatomic) OWSContactSharePhoneType phoneType;
@property (nonatomic) OWSContactPhoneType phoneType;
@property (nonatomic, nullable) NSString *label;
@property (nonatomic) NSString *phoneNumber;
@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@implementation OWSContactSharePhoneNumber
@implementation OWSContactPhoneNumber
- (BOOL)isValid
{
@ -33,9 +33,9 @@ NS_ASSUME_NONNULL_BEGIN
return NO;
}
switch (self.phoneType) {
case OWSContactSharePhoneType_Home:
case OWSContactSharePhoneType_Mobile:
case OWSContactSharePhoneType_Work:
case OWSContactPhoneType_Home:
case OWSContactPhoneType_Mobile:
case OWSContactPhoneType_Work:
return YES;
default:
return self.label.ows_stripped.length > 0;
@ -46,9 +46,9 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@interface OWSContactShareEmail ()
@interface OWSContactEmail ()
@property (nonatomic) OWSContactShareEmailType emailType;
@property (nonatomic) OWSContactEmailType emailType;
@property (nonatomic, nullable) NSString *label;
@property (nonatomic) NSString *email;
@ -57,7 +57,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@implementation OWSContactShareEmail
@implementation OWSContactEmail
- (BOOL)isValid
{
@ -65,9 +65,9 @@ NS_ASSUME_NONNULL_BEGIN
return NO;
}
switch (self.emailType) {
case OWSContactShareEmailType_Home:
case OWSContactShareEmailType_Mobile:
case OWSContactShareEmailType_Work:
case OWSContactEmailType_Home:
case OWSContactEmailType_Mobile:
case OWSContactEmailType_Work:
return YES;
default:
return self.label.ows_stripped.length > 0;
@ -78,9 +78,9 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@interface OWSContactShareAddress ()
@interface OWSContactAddress ()
@property (nonatomic) OWSContactShareAddressType addressType;
@property (nonatomic) OWSContactAddressType addressType;
@property (nonatomic, nullable) NSString *label;
@property (nonatomic, nullable) NSString *street;
@ -95,7 +95,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@implementation OWSContactShareAddress
@implementation OWSContactAddress
- (BOOL)isValid
{
@ -106,8 +106,8 @@ NS_ASSUME_NONNULL_BEGIN
return NO;
}
switch (self.addressType) {
case OWSContactShareAddressType_Home:
case OWSContactShareAddressType_Work:
case OWSContactAddressType_Home:
case OWSContactAddressType_Work:
return YES;
default:
return self.label.ows_stripped.length > 0;
@ -118,7 +118,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@interface OWSContactShare ()
@interface OWSContact ()
@property (nonatomic, nullable) NSString *givenName;
@property (nonatomic, nullable) NSString *familyName;
@ -126,9 +126,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, nullable) NSString *namePrefix;
@property (nonatomic, nullable) NSString *middleName;
@property (nonatomic, nullable) NSArray<OWSContactSharePhoneNumber *> *phoneNumbers;
@property (nonatomic, nullable) NSArray<OWSContactShareEmail *> *emails;
@property (nonatomic, nullable) NSArray<OWSContactShareAddress *> *addresses;
@property (nonatomic, nullable) NSArray<OWSContactPhoneNumber *> *phoneNumbers;
@property (nonatomic, nullable) NSArray<OWSContactEmail *> *emails;
@property (nonatomic, nullable) NSArray<OWSContactAddress *> *addresses;
@property (nonatomic, nullable) TSAttachment *avatar;
@property (nonatomic) BOOL isProfileAvatar;
@ -137,10 +137,10 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark -
@implementation OWSContactShare
@implementation OWSContact
+ (OWSContactShare *_Nullable)contactShareForDataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
transaction:(YapDatabaseReadWriteTransaction *)transaction
+ (OWSContact *_Nullable)contactForDataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
transaction:(YapDatabaseReadWriteTransaction *)transaction
{
OWSAssert(dataMessage);
@ -150,74 +150,74 @@ NS_ASSUME_NONNULL_BEGIN
OWSAssert(dataMessage.contact.count == 1);
OWSSignalServiceProtosDataMessageContact *contactProto = dataMessage.contact.firstObject;
OWSContactShare *contactShare = [OWSContactShare new];
OWSContact *contact = [OWSContact new];
if (contactProto.hasName) {
OWSSignalServiceProtosDataMessageContactName *nameProto = contactProto.name;
if (nameProto.hasGivenName) {
contactShare.givenName = nameProto.givenName.ows_stripped;
contact.givenName = nameProto.givenName.ows_stripped;
}
if (nameProto.hasFamilyName) {
contactShare.familyName = nameProto.familyName.ows_stripped;
contact.familyName = nameProto.familyName.ows_stripped;
}
if (nameProto.hasPrefix) {
contactShare.namePrefix = nameProto.prefix.ows_stripped;
contact.namePrefix = nameProto.prefix.ows_stripped;
}
if (nameProto.hasSuffix) {
contactShare.nameSuffix = nameProto.suffix.ows_stripped;
contact.nameSuffix = nameProto.suffix.ows_stripped;
}
if (nameProto.hasMiddleName) {
contactShare.middleName = nameProto.middleName.ows_stripped;
contact.middleName = nameProto.middleName.ows_stripped;
}
}
NSMutableArray<OWSContactSharePhoneNumber *> *phoneNumbers = [NSMutableArray new];
NSMutableArray<OWSContactPhoneNumber *> *phoneNumbers = [NSMutableArray new];
for (OWSSignalServiceProtosDataMessageContactPhone *phoneNumberProto in contactProto.number) {
OWSContactSharePhoneNumber *_Nullable phoneNumber = [self phoneNumberForProto:phoneNumberProto];
OWSContactPhoneNumber *_Nullable phoneNumber = [self phoneNumberForProto:phoneNumberProto];
if (phoneNumber) {
[phoneNumbers addObject:phoneNumber];
}
}
contactShare.phoneNumbers = [phoneNumbers copy];
contact.phoneNumbers = [phoneNumbers copy];
NSMutableArray<OWSContactShareEmail *> *emails = [NSMutableArray new];
NSMutableArray<OWSContactEmail *> *emails = [NSMutableArray new];
for (OWSSignalServiceProtosDataMessageContactEmail *emailProto in contactProto.email) {
OWSContactShareEmail *_Nullable email = [self emailForProto:emailProto];
OWSContactEmail *_Nullable email = [self emailForProto:emailProto];
if (email) {
[emails addObject:email];
}
}
contactShare.emails = [emails copy];
contact.emails = [emails copy];
NSMutableArray<OWSContactShareAddress *> *addresses = [NSMutableArray new];
NSMutableArray<OWSContactAddress *> *addresses = [NSMutableArray new];
for (OWSSignalServiceProtosDataMessageContactPostalAddress *addressProto in contactProto.address) {
OWSContactShareAddress *_Nullable address = [self addressForProto:addressProto];
OWSContactAddress *_Nullable address = [self addressForProto:addressProto];
if (address) {
[addresses addObject:address];
}
}
contactShare.addresses = [addresses copy];
contact.addresses = [addresses copy];
// TODO: Avatar
return contactShare;
return contact;
}
+ (nullable OWSContactSharePhoneNumber *)phoneNumberForProto:
+ (nullable OWSContactPhoneNumber *)phoneNumberForProto:
(OWSSignalServiceProtosDataMessageContactPhone *)phoneNumberProto
{
OWSContactSharePhoneNumber *result = [OWSContactSharePhoneNumber new];
result.phoneType = OWSContactSharePhoneType_Custom;
OWSContactPhoneNumber *result = [OWSContactPhoneNumber new];
result.phoneType = OWSContactPhoneType_Custom;
if (phoneNumberProto.hasType) {
switch (phoneNumberProto.type) {
case OWSSignalServiceProtosDataMessageContactPhoneTypeHome:
result.phoneType = OWSContactSharePhoneType_Home;
result.phoneType = OWSContactPhoneType_Home;
break;
case OWSSignalServiceProtosDataMessageContactPhoneTypeMobile:
result.phoneType = OWSContactSharePhoneType_Mobile;
result.phoneType = OWSContactPhoneType_Mobile;
break;
case OWSSignalServiceProtosDataMessageContactPhoneTypeWork:
result.phoneType = OWSContactSharePhoneType_Work;
result.phoneType = OWSContactPhoneType_Work;
break;
default:
break;
@ -237,20 +237,20 @@ NS_ASSUME_NONNULL_BEGIN
return result;
}
+ (nullable OWSContactShareEmail *)emailForProto:(OWSSignalServiceProtosDataMessageContactEmail *)emailProto
+ (nullable OWSContactEmail *)emailForProto:(OWSSignalServiceProtosDataMessageContactEmail *)emailProto
{
OWSContactShareEmail *result = [OWSContactShareEmail new];
result.emailType = OWSContactShareEmailType_Custom;
OWSContactEmail *result = [OWSContactEmail new];
result.emailType = OWSContactEmailType_Custom;
if (emailProto.hasType) {
switch (emailProto.type) {
case OWSSignalServiceProtosDataMessageContactEmailTypeHome:
result.emailType = OWSContactShareEmailType_Home;
result.emailType = OWSContactEmailType_Home;
break;
case OWSSignalServiceProtosDataMessageContactEmailTypeMobile:
result.emailType = OWSContactShareEmailType_Mobile;
result.emailType = OWSContactEmailType_Mobile;
break;
case OWSSignalServiceProtosDataMessageContactEmailTypeWork:
result.emailType = OWSContactShareEmailType_Work;
result.emailType = OWSContactEmailType_Work;
break;
default:
break;
@ -270,18 +270,17 @@ NS_ASSUME_NONNULL_BEGIN
return result;
}
+ (nullable OWSContactShareAddress *)addressForProto:
(OWSSignalServiceProtosDataMessageContactPostalAddress *)addressProto
+ (nullable OWSContactAddress *)addressForProto:(OWSSignalServiceProtosDataMessageContactPostalAddress *)addressProto
{
OWSContactShareAddress *result = [OWSContactShareAddress new];
result.addressType = OWSContactShareAddressType_Custom;
OWSContactAddress *result = [OWSContactAddress new];
result.addressType = OWSContactAddressType_Custom;
if (addressProto.hasType) {
switch (addressProto.type) {
case OWSSignalServiceProtosDataMessageContactPostalAddressTypeHome:
result.addressType = OWSContactShareAddressType_Home;
result.addressType = OWSContactAddressType_Home;
break;
case OWSSignalServiceProtosDataMessageContactPostalAddressTypeWork:
result.addressType = OWSContactShareAddressType_Work;
result.addressType = OWSContactAddressType_Work;
break;
default:
break;
@ -323,17 +322,17 @@ NS_ASSUME_NONNULL_BEGIN
return NO;
}
for (OWSContactSharePhoneNumber *phoneNumber in self.phoneNumbers) {
for (OWSContactPhoneNumber *phoneNumber in self.phoneNumbers) {
if (phoneNumber.isValid) {
return YES;
}
}
for (OWSContactShareEmail *email in self.emails) {
for (OWSContactEmail *email in self.emails) {
if (email.isValid) {
return YES;
}
}
for (OWSContactShareAddress *address in self.addresses) {
for (OWSContactAddress *address in self.addresses) {
if (address.isValid) {
return YES;
}
@ -367,64 +366,64 @@ NS_ASSUME_NONNULL_BEGIN
return contacts.firstObject;
}
+ (nullable OWSContactShare *)contactShareForSystemContact:(CNContact *)contact
+ (nullable OWSContact *)contactForSystemContact:(CNContact *)systemContact
{
if (!contact) {
if (!systemContact) {
OWSProdLogAndFail(@"%@ Missing contact.", self.logTag);
return nil;
}
OWSContactShare *contactShare = [OWSContactShare new];
contactShare.givenName = contact.givenName.ows_stripped;
contactShare.middleName = contact.middleName.ows_stripped;
contactShare.familyName = contact.familyName.ows_stripped;
contactShare.namePrefix = contact.namePrefix.ows_stripped;
contactShare.nameSuffix = contact.nameSuffix.ows_stripped;
OWSContact *contact = [OWSContact new];
contact.givenName = systemContact.givenName.ows_stripped;
contact.middleName = systemContact.middleName.ows_stripped;
contact.familyName = systemContact.familyName.ows_stripped;
contact.namePrefix = systemContact.namePrefix.ows_stripped;
contact.nameSuffix = systemContact.nameSuffix.ows_stripped;
// TODO: Display name.
// contactShare.displayName = [CNContactFormatter stringFromContact:contact
// style:CNContactFormatterStyleFullName]; contactShare.organizationName = contact.organizationName.ows_stripped;
// contact.displayName = [CNContactFormatter stringFromContact:contact
// style:CNContactFormatterStyleFullName]; contact.organizationName = contact.organizationName.ows_stripped;
NSMutableArray<OWSContactSharePhoneNumber *> *phoneNumbers = [NSMutableArray new];
for (CNLabeledValue<CNPhoneNumber *> *phoneNumberField in contact.phoneNumbers) {
OWSContactSharePhoneNumber *phoneNumber = [OWSContactSharePhoneNumber new];
NSMutableArray<OWSContactPhoneNumber *> *phoneNumbers = [NSMutableArray new];
for (CNLabeledValue<CNPhoneNumber *> *phoneNumberField in systemContact.phoneNumbers) {
OWSContactPhoneNumber *phoneNumber = [OWSContactPhoneNumber new];
phoneNumber.phoneNumber = phoneNumberField.value.stringValue;
if ([phoneNumberField.label isEqualToString:CNLabelHome]) {
phoneNumber.phoneType = OWSContactSharePhoneType_Home;
phoneNumber.phoneType = OWSContactPhoneType_Home;
} else if ([phoneNumberField.label isEqualToString:CNLabelWork]) {
phoneNumber.phoneType = OWSContactSharePhoneType_Work;
phoneNumber.phoneType = OWSContactPhoneType_Work;
} else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberMobile]) {
phoneNumber.phoneType = OWSContactSharePhoneType_Mobile;
phoneNumber.phoneType = OWSContactPhoneType_Mobile;
} else {
phoneNumber.phoneType = OWSContactSharePhoneType_Custom;
phoneNumber.phoneType = OWSContactPhoneType_Custom;
phoneNumber.label = phoneNumberField.label;
}
if (phoneNumber.isValid) {
[phoneNumbers addObject:phoneNumber];
}
}
contactShare.phoneNumbers = phoneNumbers;
contact.phoneNumbers = phoneNumbers;
NSMutableArray<OWSContactShareEmail *> *emails = [NSMutableArray new];
for (CNLabeledValue *emailField in contact.emailAddresses) {
OWSContactShareEmail *email = [OWSContactShareEmail new];
NSMutableArray<OWSContactEmail *> *emails = [NSMutableArray new];
for (CNLabeledValue *emailField in systemContact.emailAddresses) {
OWSContactEmail *email = [OWSContactEmail new];
email.email = emailField.value;
if ([emailField.label isEqualToString:CNLabelHome]) {
email.emailType = OWSContactShareEmailType_Home;
email.emailType = OWSContactEmailType_Home;
} else if ([emailField.label isEqualToString:CNLabelWork]) {
email.emailType = OWSContactShareEmailType_Work;
email.emailType = OWSContactEmailType_Work;
} else {
email.emailType = OWSContactShareEmailType_Custom;
email.emailType = OWSContactEmailType_Custom;
email.label = emailField.label;
}
if (email.isValid) {
[emails addObject:email];
}
}
contactShare.emails = emails;
contact.emails = emails;
NSMutableArray<OWSContactShareAddress *> *addresses = [NSMutableArray new];
for (CNLabeledValue<CNPostalAddress *> *addressField in contact.postalAddresses) {
OWSContactShareAddress *address = [OWSContactShareAddress new];
NSMutableArray<OWSContactAddress *> *addresses = [NSMutableArray new];
for (CNLabeledValue<CNPostalAddress *> *addressField in systemContact.postalAddresses) {
OWSContactAddress *address = [OWSContactAddress new];
address.street = addressField.value.street;
// TODO: Is this the correct mapping?
// address.neighborhood = addressField.value.subLocality;
@ -437,38 +436,38 @@ NS_ASSUME_NONNULL_BEGIN
address.country = addressField.value.ISOCountryCode;
if ([addressField.label isEqualToString:CNLabelHome]) {
address.addressType = OWSContactShareAddressType_Home;
address.addressType = OWSContactAddressType_Home;
} else if ([addressField.label isEqualToString:CNLabelWork]) {
address.addressType = OWSContactShareAddressType_Work;
address.addressType = OWSContactAddressType_Work;
} else {
address.addressType = OWSContactShareAddressType_Custom;
address.addressType = OWSContactAddressType_Custom;
address.label = addressField.label;
}
if (address.isValid) {
[addresses addObject:address];
}
}
contactShare.addresses = addresses;
contact.addresses = addresses;
// TODO: Avatar
// @property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSData *imageData;
// @property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSData *thumbnailImageData;
if (contactShare.isValid) {
return contactShare;
if (contact.isValid) {
return contact;
} else {
return nil;
}
}
+ (nullable OWSContactShare *)contactShareForVCardData:(NSData *)data
+ (nullable OWSContact *)contactForVCardData:(NSData *)data
{
CNContact *_Nullable systemContact = [self systemContactForVCardData:data];
if (!systemContact) {
return nil;
}
return [self contactShareForSystemContact:systemContact];
return [self contactForSystemContact:systemContact];
}
@end

@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;
}

@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (self) {
_block = block;

@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
}
- (BOOL)shouldBeSaved

@ -34,7 +34,7 @@ typedef NS_ENUM(int32_t, TSErrorMessageType) {
expiresInSeconds:(uint32_t)expiresInSeconds
expireStartedAt:(uint64_t)expireStartedAt
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare NS_UNAVAILABLE;
contact:(nullable OWSContact *)contact NS_UNAVAILABLE;
- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

@ -66,7 +66,7 @@ NSUInteger TSErrorMessageSchemaVersion = 1;
expiresInSeconds:0
expireStartedAt:0
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;

@ -19,7 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
expiresInSeconds:(uint32_t)expiresInSeconds
expireStartedAt:(uint64_t)expireStartedAt
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare NS_UNAVAILABLE;
contact:(nullable OWSContact *)contact NS_UNAVAILABLE;
/**
* Inits an incoming group message that expires.
@ -51,7 +51,7 @@ NS_ASSUME_NONNULL_BEGIN
attachmentIds:(NSArray<NSString *> *)attachmentIds
expiresInSeconds:(uint32_t)expiresInSeconds
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare NS_DESIGNATED_INITIALIZER;
contact:(nullable OWSContact *)contact NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

@ -44,7 +44,7 @@ NS_ASSUME_NONNULL_BEGIN
attachmentIds:(NSArray<NSString *> *)attachmentIds
expiresInSeconds:(uint32_t)expiresInSeconds
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare
contact:(nullable OWSContact *)contact
{
self = [super initMessageWithTimestamp:timestamp
inThread:thread
@ -53,7 +53,7 @@ NS_ASSUME_NONNULL_BEGIN
expiresInSeconds:expiresInSeconds
expireStartedAt:0
quotedMessage:quotedMessage
contactShare:contactShare];
contact:contact];
if (!self) {
return self;

@ -35,7 +35,7 @@ typedef NS_ENUM(NSInteger, TSInfoMessageType) {
expiresInSeconds:(uint32_t)expiresInSeconds
expireStartedAt:(uint64_t)expireStartedAt
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare NS_UNAVAILABLE;
contact:(nullable OWSContact *)contact NS_UNAVAILABLE;
- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

@ -53,7 +53,7 @@ NSUInteger TSInfoMessageSchemaVersion = 1;
expiresInSeconds:0
expireStartedAt:0
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;

@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN
* Abstract message class.
*/
@class OWSContactShare;
@class OWSContact;
@class TSAttachment;
@class TSAttachmentStream;
@class TSQuotedMessage;
@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) uint64_t expiresAt;
@property (nonatomic, readonly) BOOL isExpiringMessage;
@property (nonatomic, readonly, nullable) TSQuotedMessage *quotedMessage;
@property (nonatomic, readonly, nullable) OWSContactShare *contactShare;
@property (nonatomic, readonly, nullable) OWSContact *contact;
- (instancetype)initInteractionWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)thread NS_UNAVAILABLE;
@ -36,7 +36,7 @@ NS_ASSUME_NONNULL_BEGIN
expiresInSeconds:(uint32_t)expiresInSeconds
expireStartedAt:(uint64_t)expireStartedAt
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare NS_DESIGNATED_INITIALIZER;
contact:(nullable OWSContact *)contact NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

@ -7,7 +7,7 @@
#import "MIMETypeUtil.h"
#import "NSDate+OWS.h"
#import "NSString+SSK.h"
#import "OWSContactShare.h"
#import "OWSContact.h"
#import "TSAttachment.h"
#import "TSAttachmentStream.h"
#import "TSQuotedMessage.h"
@ -66,7 +66,7 @@ static const NSUInteger OWSMessageSchemaVersion = 4;
expiresInSeconds:(uint32_t)expiresInSeconds
expireStartedAt:(uint64_t)expireStartedAt
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare
contact:(nullable OWSContact *)contact
{
self = [super initInteractionWithTimestamp:timestamp inThread:thread];
@ -83,7 +83,7 @@ static const NSUInteger OWSMessageSchemaVersion = 4;
[self updateExpiresAt];
_receivedAtTimestamp = [NSDate ows_millisecondTimeStamp];
_quotedMessage = quotedMessage;
_contactShare = contactShare;
_contact = contact;
return self;
}
@ -261,7 +261,7 @@ static const NSUInteger OWSMessageSchemaVersion = 4;
return bodyDescription;
} else if (attachmentDescription.length > 0) {
return attachmentDescription;
} else if (self.contactShare) {
} else if (self.contact) {
// TODO: Include properly formatted name.
return @"👤";
} else {

@ -75,7 +75,7 @@ typedef NS_ENUM(NSInteger, TSGroupMetaMessage) {
expiresInSeconds:(uint32_t)expiresInSeconds
expireStartedAt:(uint64_t)expireStartedAt
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare NS_UNAVAILABLE;
contact:(nullable OWSContact *)contact NS_UNAVAILABLE;
- (instancetype)initOutgoingMessageWithTimestamp:(uint64_t)timestamp
inThread:(nullable TSThread *)thread
@ -86,7 +86,7 @@ typedef NS_ENUM(NSInteger, TSGroupMetaMessage) {
isVoiceMessage:(BOOL)isVoiceMessage
groupMetaMessage:(TSGroupMetaMessage)groupMetaMessage
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare NS_DESIGNATED_INITIALIZER;
contact:(nullable OWSContact *)contact NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

@ -5,7 +5,7 @@
#import "TSOutgoingMessage.h"
#import "NSDate+OWS.h"
#import "NSString+SSK.h"
#import "OWSContactShare.h"
#import "OWSContact.h"
#import "OWSMessageSender.h"
#import "OWSOutgoingSyncMessage.h"
#import "OWSPrimaryStorage.h"
@ -245,7 +245,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:quotedMessage
contactShare:nil];
contact:nil];
}
+ (instancetype)outgoingMessageInThread:(nullable TSThread *)thread
@ -260,7 +260,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
isVoiceMessage:NO
groupMetaMessage:groupMetaMessage
quotedMessage:nil
contactShare:nil];
contact:nil];
}
- (instancetype)initOutgoingMessageWithTimestamp:(uint64_t)timestamp
@ -272,7 +272,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
isVoiceMessage:(BOOL)isVoiceMessage
groupMetaMessage:(TSGroupMetaMessage)groupMetaMessage
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
contactShare:(nullable OWSContactShare *)contactShare
contact:(nullable OWSContact *)contact
{
self = [super initMessageWithTimestamp:timestamp
inThread:thread
@ -281,7 +281,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
expiresInSeconds:expiresInSeconds
expireStartedAt:expireStartedAt
quotedMessage:quotedMessage
contactShare:contactShare];
contact:contact];
if (!self) {
return self;
}
@ -794,9 +794,9 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
}
// Contact Share
OWSSignalServiceProtosDataMessageContact *_Nullable contactShare = self.contactShareBuilder;
if (contactShare) {
[builder addContact:contactShare];
OWSSignalServiceProtosDataMessageContact *_Nullable contact = self.contactBuilder;
if (contact) {
[builder addContact:contact];
}
return builder;
@ -846,13 +846,13 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
}
}
- (nullable OWSSignalServiceProtosDataMessageContact *)contactShareBuilder
- (nullable OWSSignalServiceProtosDataMessageContact *)contactBuilder
{
if (!self.contactShare) {
if (!self.contact) {
return nil;
}
OWSContactShare *contactShare = self.contactShare;
if (!contactShare.isValid) {
OWSContact *contact = self.contact;
if (!contact.isValid) {
OWSProdLogAndFail(@"%@ contact share is invalid.", self.logTag);
return nil;
}
@ -863,24 +863,24 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
// TODO: Should we normalize/validate values here?
OWSSignalServiceProtosDataMessageContactNameBuilder *nameBuilder =
[OWSSignalServiceProtosDataMessageContactNameBuilder new];
if (contactShare.givenName.ows_stripped.length > 0) {
nameBuilder.givenName = contactShare.givenName.ows_stripped;
if (contact.givenName.ows_stripped.length > 0) {
nameBuilder.givenName = contact.givenName.ows_stripped;
}
if (contactShare.familyName.ows_stripped.length > 0) {
nameBuilder.familyName = contactShare.familyName.ows_stripped;
if (contact.familyName.ows_stripped.length > 0) {
nameBuilder.familyName = contact.familyName.ows_stripped;
}
if (contactShare.middleName.ows_stripped.length > 0) {
nameBuilder.middleName = contactShare.middleName.ows_stripped;
if (contact.middleName.ows_stripped.length > 0) {
nameBuilder.middleName = contact.middleName.ows_stripped;
}
if (contactShare.namePrefix.ows_stripped.length > 0) {
nameBuilder.prefix = contactShare.namePrefix.ows_stripped;
if (contact.namePrefix.ows_stripped.length > 0) {
nameBuilder.prefix = contact.namePrefix.ows_stripped;
}
if (contactShare.nameSuffix.ows_stripped.length > 0) {
nameBuilder.suffix = contactShare.nameSuffix.ows_stripped;
if (contact.nameSuffix.ows_stripped.length > 0) {
nameBuilder.suffix = contact.nameSuffix.ows_stripped;
}
[contactBuilder setNameBuilder:nameBuilder];
for (OWSContactSharePhoneNumber *phoneNumber in contactShare.phoneNumbers) {
for (OWSContactPhoneNumber *phoneNumber in contact.phoneNumbers) {
if (!phoneNumber.isValid) {
OWSProdLogAndFail(@"%@ phone number is invalid.", self.logTag);
continue;
@ -892,13 +892,13 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
phoneBuilder.label = phoneBuilder.label.ows_stripped;
}
switch (phoneNumber.phoneType) {
case OWSContactSharePhoneType_Home:
case OWSContactPhoneType_Home:
phoneBuilder.type = OWSSignalServiceProtosDataMessageContactPhoneTypeHome;
break;
case OWSContactSharePhoneType_Mobile:
case OWSContactPhoneType_Mobile:
phoneBuilder.type = OWSSignalServiceProtosDataMessageContactPhoneTypeMobile;
break;
case OWSContactSharePhoneType_Work:
case OWSContactPhoneType_Work:
phoneBuilder.type = OWSSignalServiceProtosDataMessageContactPhoneTypeWork;
break;
default:
@ -908,7 +908,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
[contactBuilder addNumber:phoneBuilder.build];
}
for (OWSContactShareEmail *email in contactShare.emails) {
for (OWSContactEmail *email in contact.emails) {
if (!email.isValid) {
OWSProdLogAndFail(@"%@ email is invalid.", self.logTag);
continue;
@ -920,13 +920,13 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
emailBuilder.label = emailBuilder.label.ows_stripped;
}
switch (email.emailType) {
case OWSContactShareEmailType_Home:
case OWSContactEmailType_Home:
emailBuilder.type = OWSSignalServiceProtosDataMessageContactEmailTypeHome;
break;
case OWSContactShareEmailType_Mobile:
case OWSContactEmailType_Mobile:
emailBuilder.type = OWSSignalServiceProtosDataMessageContactEmailTypeMobile;
break;
case OWSContactShareEmailType_Work:
case OWSContactEmailType_Work:
emailBuilder.type = OWSSignalServiceProtosDataMessageContactEmailTypeWork;
break;
default:
@ -936,7 +936,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
[contactBuilder addEmail:emailBuilder.build];
}
for (OWSContactShareAddress *address in contactShare.addresses) {
for (OWSContactAddress *address in contact.addresses) {
if (!address.isValid) {
OWSProdLogAndFail(@"%@ address is invalid.", self.logTag);
continue;
@ -972,12 +972,12 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt
// TODO: avatar
OWSSignalServiceProtosDataMessageContact *contact = [contactBuilder build];
if (contact.number.count < 1 && contact.email.count < 1 && contact.address.count < 1) {
OWSSignalServiceProtosDataMessageContact *contactProto = [contactBuilder build];
if (contactProto.number.count < 1 && contactProto.email.count < 1 && contactProto.address.count < 1) {
OWSProdLogAndFail(@"%@ contact has neither phone, email or address.", self.logTag);
return nil;
}
return contact;
return contactProto;
}
// recipientId is nil when building "sent" sync messages for messages sent to groups.

@ -14,7 +14,7 @@
#import "OWSAttachmentsProcessor.h"
#import "OWSBlockingManager.h"
#import "OWSCallMessageHandler.h"
#import "OWSContactShare.h"
#import "OWSContact.h"
#import "OWSDevice.h"
#import "OWSDisappearingConfigurationUpdateInfoMessage.h"
#import "OWSDisappearingMessagesConfiguration.h"
@ -997,8 +997,7 @@ NS_ASSUME_NONNULL_BEGIN
relay:envelope.relay
transaction:transaction];
OWSContactShare *_Nullable contactShare =
[OWSContactShare contactShareForDataMessage:dataMessage transaction:transaction];
OWSContact *_Nullable contact = [OWSContact contactForDataMessage:dataMessage transaction:transaction];
DDLogDebug(@"%@ incoming message from: %@ for group: %@ with timestamp: %lu",
self.logTag,
@ -1015,7 +1014,7 @@ NS_ASSUME_NONNULL_BEGIN
attachmentIds:attachmentIds
expiresInSeconds:dataMessage.expireTimer
quotedMessage:quotedMessage
contactShare:contactShare];
contact:contact];
[self finalizeIncomingMessage:incomingMessage
thread:oldGroupThread
@ -1049,8 +1048,7 @@ NS_ASSUME_NONNULL_BEGIN
thread:thread
relay:envelope.relay
transaction:transaction];
OWSContactShare *_Nullable contactShare =
[OWSContactShare contactShareForDataMessage:dataMessage transaction:transaction];
OWSContact *_Nullable contact = [OWSContact contactForDataMessage:dataMessage transaction:transaction];
TSIncomingMessage *incomingMessage =
[[TSIncomingMessage alloc] initIncomingMessageWithTimestamp:timestamp
@ -1061,7 +1059,7 @@ NS_ASSUME_NONNULL_BEGIN
attachmentIds:attachmentIds
expiresInSeconds:dataMessage.expireTimer
quotedMessage:quotedMessage
contactShare:contactShare];
contact:contact];
[self finalizeIncomingMessage:incomingMessage
thread:thread

@ -1166,7 +1166,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
attachmentIds:attachmentIds
expiresInSeconds:outgoingMessage.expiresInSeconds
quotedMessage:outgoingMessage.quotedMessage
contactShare:outgoingMessage.contactShare];
contact:outgoingMessage.contact];
[incomingMessage saveWithTransaction:transaction];
}];
}

@ -31,7 +31,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;
}

@ -33,7 +33,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
if (!self) {
return self;
}

@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
isVoiceMessage:NO
groupMetaMessage:TSGroupMessageUnspecified
quotedMessage:nil
contactShare:nil];
contact:nil];
}
- (BOOL)shouldBeSaved

Loading…
Cancel
Save