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.
		
		
		
		
		
			
		
			
				
	
	
		
			91 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			91 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Objective-C
		
	
//
 | 
						|
//  Copyright (c) 2019 Open Whisper Systems. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_BEGIN
 | 
						|
 | 
						|
@class Contact;
 | 
						|
@class ContactsViewHelper;
 | 
						|
@class SignalAccount;
 | 
						|
@class TSThread;
 | 
						|
 | 
						|
@protocol CNContactViewControllerDelegate;
 | 
						|
 | 
						|
@protocol ContactsViewHelperDelegate <NSObject>
 | 
						|
 | 
						|
- (void)contactsViewHelperDidUpdateContacts;
 | 
						|
 | 
						|
@optional
 | 
						|
 | 
						|
- (BOOL)shouldHideLocalNumber;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
@protocol ContactEditingDelegate <CNContactViewControllerDelegate>
 | 
						|
 | 
						|
- (void)didFinishEditingContact;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
#pragma mark -
 | 
						|
 | 
						|
@class CNContact;
 | 
						|
@class OWSBlockingManager;
 | 
						|
@class OWSContactsManager;
 | 
						|
 | 
						|
@interface ContactsViewHelper : NSObject
 | 
						|
 | 
						|
@property (nonatomic, readonly, weak) id<ContactsViewHelperDelegate> delegate;
 | 
						|
 | 
						|
@property (nonatomic, readonly) OWSContactsManager *contactsManager;
 | 
						|
@property (nonatomic, readonly) OWSBlockingManager *blockingManager;
 | 
						|
 | 
						|
@property (nonatomic, readonly) NSDictionary<NSString *, SignalAccount *> *signalAccountMap;
 | 
						|
@property (nonatomic, readonly) NSArray<SignalAccount *> *signalAccounts;
 | 
						|
 | 
						|
// Useful to differentiate between having no signal accounts vs. haven't checked yet
 | 
						|
@property (nonatomic, readonly) BOOL hasUpdatedContactsAtLeastOnce;
 | 
						|
 | 
						|
// Suitable when the user tries to perform an action which is not possible due to the user having
 | 
						|
// previously denied contact access.
 | 
						|
- (void)presentMissingContactAccessAlertControllerFromViewController:(UIViewController *)viewController;
 | 
						|
 | 
						|
- (instancetype)init NS_UNAVAILABLE;
 | 
						|
 | 
						|
- (instancetype)initWithDelegate:(id<ContactsViewHelperDelegate>)delegate;
 | 
						|
 | 
						|
- (nullable SignalAccount *)fetchSignalAccountForRecipientId:(NSString *)recipientId;
 | 
						|
- (SignalAccount *)fetchOrBuildSignalAccountForRecipientId:(NSString *)recipientId;
 | 
						|
 | 
						|
// This method is faster than OWSBlockingManager but
 | 
						|
// is only safe to be called on the main thread.
 | 
						|
- (BOOL)isRecipientIdBlocked:(NSString *)recipientId;
 | 
						|
 | 
						|
// This method is faster than OWSBlockingManager but
 | 
						|
// is only safe to be called on the main thread.
 | 
						|
- (BOOL)isThreadBlocked:(TSThread *)thread;
 | 
						|
 | 
						|
// NOTE: This method uses a transaction.
 | 
						|
- (NSString *)localNumber;
 | 
						|
 | 
						|
- (NSArray<SignalAccount *> *)signalAccountsMatchingSearchString:(NSString *)searchText;
 | 
						|
 | 
						|
- (void)warmNonSignalContactsCacheAsync;
 | 
						|
- (NSArray<Contact *> *)nonSignalContactsMatchingSearchString:(NSString *)searchText;
 | 
						|
 | 
						|
- (void)presentContactViewControllerForRecipientId:(NSString *)recipientId
 | 
						|
                                fromViewController:(UIViewController<ContactEditingDelegate> *)fromViewController
 | 
						|
                                   editImmediately:(BOOL)shouldEditImmediately;
 | 
						|
 | 
						|
// This method can be used to edit existing contacts.
 | 
						|
- (void)presentContactViewControllerForRecipientId:(NSString *)recipientId
 | 
						|
                                fromViewController:(UIViewController<ContactEditingDelegate> *)fromViewController
 | 
						|
                                   editImmediately:(BOOL)shouldEditImmediately
 | 
						|
                            addToExistingCnContact:(CNContact *_Nullable)cnContact;
 | 
						|
 | 
						|
+ (void)presentMissingContactAccessAlertControllerFromViewController:(UIViewController *)viewController;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_END
 |