Files
featherVoice/TUIKit/TUIChat/BaseDataProvider/Base/TUIGroupPendencyDataProvider.m
2025-08-08 10:49:36 +08:00

92 lines
2.4 KiB
Objective-C

//
// TUIGroupPendencyViewModel.m
// TXIMSDK_TUIKit_iOS
//
// Created by annidyfeng on 2019/6/18.
// Copyright © 2023 Tencent. All rights reserved.
//
#import "TUIGroupPendencyDataProvider.h"
#import <TIMCommon/TIMDefine.h>
@interface TUIGroupPendencyDataProvider ()
@property NSArray *dataList;
@property(nonatomic, assign) uint64_t origSeq;
@property(nonatomic, assign) uint64_t seq;
@property(nonatomic, assign) uint64_t timestamp;
@property(nonatomic, assign) uint64_t numPerPage;
@end
@implementation TUIGroupPendencyDataProvider
- (instancetype)init {
self = [super init];
_numPerPage = 100;
_dataList = @[];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPendencyChanged:) name:TUIGroupPendencyCellData_onPendencyChanged object:nil];
return self;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)onPendencyChanged:(NSNotification *)notification {
int unReadCnt = 0;
for (TUIGroupPendencyCellData *data in self.dataList) {
if (data.isRejectd || data.isAccepted) {
continue;
}
unReadCnt++;
}
self.unReadCnt = unReadCnt;
}
- (void)loadData {
if (self.isLoading) return;
self.isLoading = YES;
@weakify(self);
[[V2TIMManager sharedInstance]
getGroupApplicationList:^(V2TIMGroupApplicationResult *result) {
@strongify(self);
NSMutableArray *list = @[].mutableCopy;
for (V2TIMGroupApplication *item in result.applicationList) {
if ([item.groupID isEqualToString:self.groupId] && item.handleStatus == V2TIM_GROUP_APPLICATION_HANDLE_STATUS_UNHANDLED) {
TUIGroupPendencyCellData *data = [[TUIGroupPendencyCellData alloc] initWithPendency:item];
[list addObject:data];
}
}
self.dataList = list;
self.unReadCnt = (int)list.count;
self.isLoading = NO;
self.hasNextData = NO;
;
}
fail:nil];
}
- (void)acceptData:(TUIGroupPendencyCellData *)data {
[data accept];
self.unReadCnt--;
}
- (void)removeData:(TUIGroupPendencyCellData *)data {
NSMutableArray *dataList = [NSMutableArray arrayWithArray:self.dataList];
[dataList removeObject:data];
self.dataList = dataList;
[data reject];
self.unReadCnt--;
}
@end