| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- //
- // TUIConversationListBaseDataProvider.h
- // TUIConversation
- //
- // Created by harvy on 2022/7/14.
- // Copyright © 2023 Tencent. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- @import ImSDK_Plus;
- @class V2TIMConversation;
- @class V2TIMConversationListFilter;
- @class V2TIMMessage;
- @class TUIConversationCellData;
- NS_ASSUME_NONNULL_BEGIN
- static NSString *gGroup_conversationFoldListMockID = @"group_conversationFoldListMockID";
- @protocol TUIConversationListDataProviderDelegate <NSObject>
- @optional
- - (NSString *)getConversationDisplayString:(V2TIMConversation *)conversation;
- - (void)insertConversationsAtIndexPaths:(NSArray *)indexPaths;
- - (void)reloadConversationsAtIndexPaths:(NSArray *)indexPaths;
- - (void)deleteConversationAtIndexPaths:(NSArray *)indexPaths;
- - (void)reloadAllConversations;
- - (void)updateMarkUnreadCount:(NSInteger)markUnreadCount markHideUnreadCount:(NSInteger)markHideUnreadCount;
- @end
- @protocol TUIConversationListDataProviderDelegate_Two <NSObject>
- - (TUIConversationCellData *)cellDataForConversation_Two:(V2TIMConversation *)conversation;
- @end
- @interface TUIConversationListBaseDataProvider : NSObject
- /**
- *
- * The conversations pull filter
- */
- @property(nonatomic, strong) V2TIMConversationListFilter *filter;
- /**
- * , 100
- * The count of conversations per page, default is 100
- */
- @property(nonatomic, assign) NSUInteger pageSize;
- /**
- *
- * The index of the current page
- */
- @property(nonatomic, assign) NSUInteger pageIndex;
- /**
- *
- * An identifier that identifies whether the paging data has been completely pulled
- */
- @property(nonatomic, assign, readonly, getter=isLastPage) BOOL lastPage;
- @property(nonatomic, weak, nullable) id<TUIConversationListDataProviderDelegate> delegate;
- @property(nonatomic, strong, readonly) NSMutableArray<TUIConversationCellData *> *conversationList;
- @property(nonatomic, strong) NSMutableDictionary<NSString *, TUIConversationCellData *> *markHideMap;
- @property(nonatomic, strong) NSMutableDictionary<NSString *, TUIConversationCellData *> *markUnreadMap;
- @property(nonatomic, strong) NSMutableDictionary<NSString *, TUIConversationCellData *> *markFoldMap;
- @property(nonatomic, strong) NSDictionary<NSString *, NSString *> *lastMessageDisplayMap;
- @property (nonatomic, weak, nullable) id <TUIConversationListDataProviderDelegate_Two> delegateTwo;
- - (void)loadNexPageConversations;
- - (void)addConversationList:(NSArray<TUIConversationCellData *> *)conversationList;
- - (void)removeConversation:(TUIConversationCellData *)conversation;
- - (void)clearHistoryMessage:(TUIConversationCellData *)conversation;
- - (void)pinConversation:(TUIConversationCellData *)conversation pin:(BOOL)pin;
- - (void)hideConversation:(TUIConversationCellData *)conversation;
- - (void)markConversationHide:(TUIConversationCellData *)data;
- - (void)markConversationAsRead:(TUIConversationCellData *)conv;
- - (void)markConversationAsUnRead:(TUIConversationCellData *)conv;
- + (void)cacheConversationFoldListSettings_HideFoldItem:(BOOL)flag;
- + (void)cacheConversationFoldListSettings_FoldItemIsUnread:(BOOL)flag;
- + (BOOL)getConversationFoldListSettings_HideFoldItem;
- + (BOOL)getConversationFoldListSettings_FoldItemIsUnread;
- - (NSString *)getGroupAtTipString:(V2TIMConversation *)conv;
- - (NSString *)getDraftContent:(V2TIMConversation *)conv;
- - (BOOL)isConversationNotDisturb:(V2TIMConversation *)conversation;
- - (NSMutableArray<NSNumber *> *)getGroupatMsgSeqs:(V2TIMConversation *)conv;
- - (NSDate *)getLastDisplayDate:(V2TIMConversation *)conv;
- // subclass override
- - (Class)getConversationCellClass;
- - (void)asnycGetLastMessageDisplay:(NSArray<TUIConversationCellData *> *)duplicateDataList addedDataList:(NSArray<TUIConversationCellData *> *)addedDataList;
- - (NSString *)getDisplayStringFromService:(V2TIMMessage *)msg;
- - (NSMutableAttributedString *)getLastDisplayString:(V2TIMConversation *)conversation;
- - (NSMutableAttributedString *)getLastDisplayStringForFoldList:(V2TIMConversation *)conversation;
- - (TUIConversationCellData *)cellDataForConversation:(V2TIMConversation *)conversation;
- - (BOOL)filteConversation:(V2TIMConversation *)conversation;
- - (void)sortDataList:(NSMutableArray<TUIConversationCellData *> *)dataList;
- - (void)handleInsertConversationList:(NSArray<TUIConversationCellData *> *)conversationList;
- - (void)handleUpdateConversationList:(NSArray<TUIConversationCellData *> *)conversationList
- positions:(NSMutableDictionary<NSString *, NSNumber *> *)positionMaps;
- - (void)handleHideConversation:(TUIConversationCellData *)conversation;
- - (void)updateMarkUnreadCount;
- @end
- NS_ASSUME_NONNULL_END
|