mirror of https://github.com/oxen-io/session-ios
				
				
				
			
							parent
							
								
									741e5c02ac
								
							
						
					
					
						commit
						41e564db47
					
				| @ -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