mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.0 KiB
C
59 lines
2.0 KiB
C
5 years ago
|
//
|
||
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import <Mantle/MTLModel.h>
|
||
|
|
||
|
NS_ASSUME_NONNULL_BEGIN
|
||
|
|
||
|
/**
|
||
|
* An adapter for the system contacts
|
||
|
*/
|
||
|
|
||
|
@class CNContact;
|
||
|
@class PhoneNumber;
|
||
|
@class SignalRecipient;
|
||
|
@class UIImage;
|
||
|
@class YapDatabaseReadTransaction;
|
||
|
|
||
|
@interface Contact : MTLModel
|
||
|
|
||
|
@property (nullable, readonly, nonatomic) NSString *firstName;
|
||
|
@property (nullable, readonly, nonatomic) NSString *lastName;
|
||
|
@property (readonly, nonatomic) NSString *fullName;
|
||
|
@property (readonly, nonatomic) NSString *comparableNameFirstLast;
|
||
|
@property (readonly, nonatomic) NSString *comparableNameLastFirst;
|
||
|
@property (readonly, nonatomic) NSArray<PhoneNumber *> *parsedPhoneNumbers;
|
||
|
@property (readonly, nonatomic) NSArray<NSString *> *userTextPhoneNumbers;
|
||
|
@property (readonly, nonatomic) NSArray<NSString *> *emails;
|
||
|
@property (readonly, nonatomic) NSString *uniqueId;
|
||
|
@property (nonatomic, readonly) BOOL isSignalContact;
|
||
|
@property (nonatomic, readonly) NSString *cnContactId;
|
||
|
|
||
|
- (NSArray<SignalRecipient *> *)signalRecipientsWithTransaction:(YapDatabaseReadTransaction *)transaction;
|
||
|
// TODO: Remove this method.
|
||
|
- (NSArray<NSString *> *)textSecureIdentifiers;
|
||
|
|
||
|
#if TARGET_OS_IOS
|
||
|
|
||
|
- (instancetype)initWithSystemContact:(CNContact *)cnContact NS_AVAILABLE_IOS(9_0);
|
||
|
+ (nullable Contact *)contactWithVCardData:(NSData *)data;
|
||
|
+ (nullable CNContact *)cnContactWithVCardData:(NSData *)data;
|
||
|
|
||
|
- (NSString *)nameForPhoneNumber:(NSString *)recipientId;
|
||
|
|
||
|
#endif // TARGET_OS_IOS
|
||
|
|
||
|
+ (NSComparator)comparatorSortingNamesByFirstThenLast:(BOOL)firstNameOrdering;
|
||
|
+ (NSString *)formattedFullNameWithCNContact:(CNContact *)cnContact NS_SWIFT_NAME(formattedFullName(cnContact:));
|
||
|
+ (nullable NSString *)localizedStringForCNLabel:(nullable NSString *)cnLabel;
|
||
|
|
||
|
+ (CNContact *)mergeCNContact:(CNContact *)oldCNContact
|
||
|
newCNContact:(CNContact *)newCNContact NS_SWIFT_NAME(merge(cnContact:newCNContact:));
|
||
|
|
||
|
+ (nullable NSData *)avatarDataForCNContact:(nullable CNContact *)cnContact;
|
||
|
|
||
|
@end
|
||
|
|
||
|
NS_ASSUME_NONNULL_END
|