60 lines
1.7 KiB
Objective-C
60 lines
1.7 KiB
Objective-C
//
|
|
// Copyright 2017 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
#import "Contact.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@implementation Contact
|
|
|
|
- (BOOL)isFromLocalAddressBook
|
|
{
|
|
return self.cnContactId != nil;
|
|
}
|
|
|
|
- (instancetype)initWithCNContactId:(nullable NSString *)cnContactId
|
|
firstName:(NSString *)firstName
|
|
lastName:(NSString *)lastName
|
|
nickname:(NSString *)nickname
|
|
fullName:(NSString *)fullName
|
|
{
|
|
self = [super init];
|
|
_cnContactId = [cnContactId copy];
|
|
_firstName = [firstName copy];
|
|
_lastName = [lastName copy];
|
|
_fullName = [fullName copy];
|
|
_nickname = [nickname copy];
|
|
return self;
|
|
}
|
|
|
|
+ (BOOL)supportsSecureCoding
|
|
{
|
|
return YES;
|
|
}
|
|
|
|
- (nullable instancetype)initWithCoder:(NSCoder *)coder
|
|
{
|
|
self = [super init];
|
|
_cnContactId = [[coder decodeObjectOfClass:NSString.class forKey:@"cnContactId"] copy];
|
|
_firstName = [[coder decodeObjectOfClass:NSString.class forKey:@"firstName"] copy] ?: @"";
|
|
_lastName = [[coder decodeObjectOfClass:NSString.class forKey:@"lastName"] copy] ?: @"";
|
|
_fullName = [[coder decodeObjectOfClass:NSString.class forKey:@"fullName"] copy] ?: @"";
|
|
_nickname = [[coder decodeObjectOfClass:NSString.class forKey:@"nickname"] copy] ?: @"";
|
|
return self;
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)coder
|
|
{
|
|
[coder encodeObject:self.cnContactId forKey:@"cnContactId"];
|
|
[coder encodeObject:self.firstName forKey:@"firstName"];
|
|
[coder encodeObject:self.lastName forKey:@"lastName"];
|
|
[coder encodeObject:self.fullName forKey:@"fullName"];
|
|
[coder encodeObject:self.nickname forKey:@"nickname"];
|
|
}
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|