session-ios/SessionMessagingKit/Threads/TSGroupThread.h

63 lines
2.5 KiB
C
Raw Normal View History

2020-11-11 00:58:56 +01:00
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
2020-11-25 06:15:16 +01:00
#import <SessionMessagingKit/TSGroupModel.h>
#import <SessionMessagingKit/TSThread.h>
2020-11-11 00:58:56 +01:00
NS_ASSUME_NONNULL_BEGIN
@class TSAttachmentStream;
@class YapDatabaseReadWriteTransaction;
extern NSString *const TSGroupThreadAvatarChangedNotification;
extern NSString *const TSGroupThread_NotificationKey_UniqueId;
@interface TSGroupThread : TSThread
@property (nonatomic, strong) TSGroupModel *groupModel;
2020-11-16 00:34:47 +01:00
@property (nonatomic, readonly) BOOL isOpenGroup;
2021-01-11 04:12:07 +01:00
@property (nonatomic, readonly) BOOL isClosedGroup;
2021-07-29 02:14:06 +02:00
@property (nonatomic) BOOL isOnlyNotifyingForMentions;
2020-11-11 00:58:56 +01:00
+ (instancetype)getOrCreateThreadWithGroupModel:(TSGroupModel *)groupModel;
+ (instancetype)getOrCreateThreadWithGroupModel:(TSGroupModel *)groupModel
transaction:(YapDatabaseReadWriteTransaction *)transaction;
+ (instancetype)getOrCreateThreadWithGroupId:(NSData *)groupId
groupType:(GroupType) groupType;
+ (instancetype)getOrCreateThreadWithGroupId:(NSData *)groupId
groupType:(GroupType) groupType
transaction:(YapDatabaseReadWriteTransaction *)transaction;
+ (nullable instancetype)threadWithGroupId:(NSData *)groupId transaction:(YapDatabaseReadTransaction *)transaction;
+ (NSString *)threadIdFromGroupId:(NSData *)groupId;
+ (NSString *)defaultGroupName;
2020-11-17 06:23:13 +01:00
- (BOOL)isCurrentUserMemberInGroup;
2020-11-16 00:34:47 +01:00
- (BOOL)isUserMemberInGroup:(NSString *)publicKey;
- (BOOL)isUserAdminInGroup:(NSString *)publicKey;
2020-11-11 00:58:56 +01:00
// all group threads containing recipient as a member
+ (NSArray<TSGroupThread *> *)groupThreadsWithRecipientId:(NSString *)recipientId
transaction:(YapDatabaseReadWriteTransaction *)transaction;
- (void)setGroupModel:(TSGroupModel *)newGroupModel withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
2021-07-29 02:14:06 +02:00
- (void)setisOnlyNotifyingForMentions:(BOOL)isOnlyNotifyingForMentions withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
2020-11-11 00:58:56 +01:00
- (void)leaveGroupWithSneakyTransaction;
- (void)leaveGroupWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
#pragma mark - Avatar
- (void)updateAvatarWithAttachmentStream:(TSAttachmentStream *)attachmentStream;
- (void)updateAvatarWithAttachmentStream:(TSAttachmentStream *)attachmentStream
transaction:(YapDatabaseReadWriteTransaction *)transaction;
- (void)fireAvatarChangedNotification;
@end
NS_ASSUME_NONNULL_END