Signal-iOS/SignalServiceKit/Contacts/Contact.m
2024-04-02 13:38:55 -05:00

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