//// //// Copyright (c) 2018 Open Whisper Systems. All rights reserved. //// // //#import // //NS_ASSUME_NONNULL_BEGIN // //extern const NSUInteger kOWSProfileManager_NameDataLength; //extern const NSUInteger kOWSProfileManager_MaxAvatarDiameter; // //@class OWSAES256Key; //@class OWSMessageSender; //@class OWSPrimaryStorage; //@class TSNetworkManager; //@class TSThread; //@class YapDatabaseReadWriteTransaction; // //// This class can be safely accessed and used from any thread. //@interface OWSProfileManager : NSObject // //- (instancetype)init NS_UNAVAILABLE; // //- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage; // //+ (instancetype)sharedManager; // //#pragma mark - Local Profile // //// localUserProfileExists is true if there is _ANY_ local profile. //- (BOOL)localProfileExists; //// hasLocalProfile is true if there is a local profile with a name or avatar. //- (BOOL)hasLocalProfile; // //// This method is used to update the "local profile" state on the client //// and the service. Client state is only updated if service state is //// successfully updated. //// //// This method should only be called from the main thread. //- (void)updateLocalProfileName:(nullable NSString *)profileName // avatarImage:(nullable UIImage *)avatarImage // success:(void (^)(void))successBlock // failure:(void (^)(NSError *))failureBlock // requiresSync:(BOOL)requiresSync; // //- (BOOL)isProfileNameTooLong:(nullable NSString *)profileName; // //- (void)regenerateLocalProfile; // //#pragma mark - Other Users' Profiles // //- (nullable UIImage *)profileAvatarForRecipientId:(NSString *)recipientId; //- (nullable NSData *)profileAvatarDataForRecipientId:(NSString *)recipientId; // //- (void)updateProfileForRecipientId:(NSString *)recipientId // profileNameEncrypted:(nullable NSData *)profileNameEncrypted // avatarUrlPath:(nullable NSString *)avatarUrlPath; // //#pragma mark - Other // //- (void)downloadAvatarForUserProfile:(SNContact *)contact; // //@end // //NS_ASSUME_NONNULL_END