mirror of https://github.com/oxen-io/session-ios
Merge branch 'charlesmchen/contactsSync'
commit
d82afb8bb7
@ -0,0 +1,51 @@
|
||||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class Contact;
|
||||
@class SignalRecipient;
|
||||
@class YapDatabaseReadTransaction;
|
||||
|
||||
// This class represents a single valid Signal account.
|
||||
//
|
||||
// * Contacts with multiple signal accounts will correspond to
|
||||
// multiple instances of SignalAccount.
|
||||
// * For non-contacts, the contact property will be nil.
|
||||
//
|
||||
// New instances of SignalAccount for active accounts are
|
||||
// created every time we do a contacts intersection (e.g.
|
||||
// in response to a change to the device contacts).
|
||||
@interface SignalAccount : NSObject
|
||||
|
||||
// An E164 value identifying the signal account.
|
||||
//
|
||||
// This is the key property of this class and it
|
||||
// will always be non-null.
|
||||
@property (nonatomic, readonly) NSString *recipientId;
|
||||
|
||||
// This property is optional and will not be set for
|
||||
// non-contact account.
|
||||
@property (nonatomic, nullable) Contact *contact;
|
||||
|
||||
@property (nonatomic) BOOL hasMultipleAccountContact;
|
||||
|
||||
// For contacts with more than one signal account,
|
||||
// this is a label for the account.
|
||||
@property (nonatomic) NSString *multipleAccountLabelText;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
- (instancetype)initWithSignalRecipient:(SignalRecipient *)signalRecipient;
|
||||
|
||||
- (instancetype)initWithRecipientId:(NSString *)recipientId;
|
||||
|
||||
// In most cases this should be non-null. This should only
|
||||
// be null in the case where the SignalRecipient was
|
||||
// deleted before this property was accessed.
|
||||
- (nullable SignalRecipient *)signalRecipientWithTransaction:(YapDatabaseReadTransaction *)transaction;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -0,0 +1,51 @@
|
||||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SignalAccount.h"
|
||||
#import "SignalRecipient.h"
|
||||
#import "TSStorageManager.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface SignalAccount ()
|
||||
|
||||
@property (nonatomic) NSString *recipientId;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@implementation SignalAccount
|
||||
|
||||
- (instancetype)initWithSignalRecipient:(SignalRecipient *)signalRecipient
|
||||
{
|
||||
if (self = [super init]) {
|
||||
OWSAssert(signalRecipient);
|
||||
|
||||
_recipientId = signalRecipient.uniqueId;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithRecipientId:(NSString *)recipientId
|
||||
{
|
||||
if (self = [super init]) {
|
||||
OWSAssert(recipientId.length > 0);
|
||||
|
||||
_recipientId = recipientId;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (nullable SignalRecipient *)signalRecipientWithTransaction:(YapDatabaseReadTransaction *)transaction
|
||||
{
|
||||
OWSAssert([NSThread isMainThread]);
|
||||
OWSAssert(transaction);
|
||||
|
||||
return [SignalRecipient recipientWithTextSecureIdentifier:self.recipientId withTransaction:transaction];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
Loading…
Reference in New Issue