Files
my_yuyin/TUIKit/TUIContact/BaseDataProvider/TUIFindContactViewDataProvider.m
2025-09-22 18:48:29 +08:00

101 lines
3.4 KiB
Objective-C

//
// TUIFindContactViewDataProvider.m
// TUIContact
//
// Created by harvy on 2021/12/13.
// Copyright © 2023 Tencent. All rights reserved.
//
#import "TUIFindContactViewDataProvider.h"
#import <ImSDK_Plus/ImSDK_Plus.h>
#import <TUICore/TUIGlobalization.h>
#import "TUIFindContactCellModel.h"
@interface TUIFindContactViewDataProvider ()
@property(nonatomic, strong) NSArray<TUIFindContactCellModel *> *users;
@property(nonatomic, strong) NSArray<TUIFindContactCellModel *> *groups;
@end
@implementation TUIFindContactViewDataProvider
- (void)findUser:(NSString *)userID completion:(dispatch_block_t)completion {
if (!completion) {
return;
}
if (userID == nil) {
self.users = @[];
completion();
return;
}
__weak typeof(self) weakSelf = self;
[[V2TIMManager sharedInstance] getUsersInfo:@[ userID ]
succ:^(NSArray<V2TIMUserFullInfo *> *infoList) {
V2TIMUserFullInfo *userInfo = infoList.firstObject;
if (userInfo) {
TUIFindContactCellModel *cellModel = [[TUIFindContactCellModel alloc] init];
cellModel.avatarUrl = [NSURL URLWithString:userInfo.faceURL];
cellModel.mainTitle = userInfo.nickName ?: userInfo.userID;
cellModel.subTitle = [NSString stringWithFormat:@"ID: %@", userInfo.userID];
cellModel.desc = @"";
cellModel.type = TUIFindContactTypeC2C;
cellModel.contactID = userInfo.userID;
cellModel.userInfo = userInfo;
weakSelf.users = @[ cellModel ];
}
completion();
}
fail:^(int code, NSString *msg) {
weakSelf.users = @[];
completion();
}];
}
- (void)findGroup:(NSString *)groupID completion:(dispatch_block_t)completion {
if (!completion) {
return;
}
if (groupID == nil) {
self.groups = @[];
completion();
return;
}
__weak typeof(self) weakSelf = self;
[[V2TIMManager sharedInstance] getGroupsInfo:@[ groupID ]
succ:^(NSArray<V2TIMGroupInfoResult *> *groupResultList) {
V2TIMGroupInfoResult *result = groupResultList.firstObject;
if (result && result.resultCode == 0) {
V2TIMGroupInfo *info = result.info;
TUIFindContactCellModel *cellModel = [[TUIFindContactCellModel alloc] init];
cellModel.avatarUrl = [NSURL URLWithString:info.faceURL];
cellModel.mainTitle = info.groupName;
cellModel.subTitle = [NSString stringWithFormat:@"ID: %@", info.groupID];
cellModel.desc = [NSString stringWithFormat:@"%@: %@",TIMCommonLocalizableString(TUIKitGroupProfileType),info.groupType];
cellModel.type = TUIFindContactTypeGroup;
cellModel.contactID = info.groupID;
cellModel.groupInfo = info;
weakSelf.groups = @[ cellModel ];
} else {
weakSelf.groups = @[];
}
completion();
}
fail:^(int code, NSString *desc) {
weakSelf.groups = @[];
completion();
}];
}
- (NSString *)getMyUserIDDescription {
NSString *loginUser = V2TIMManager.sharedInstance.getLoginUser;
return [NSString stringWithFormat:TIMCommonLocalizableString(TUIKitAddContactMyUserIDFormat), loginUser];
}
- (void)clear {
self.users = @[];
self.groups = @[];
}
@end