Files
featherVoice/TUIKit/TUIContact/UI_Minimalist/UI/TUIBlackListController_Minimalist.m
2025-08-08 10:49:36 +08:00

114 lines
3.9 KiB
Objective-C

//
// TUIBlackListController.m
// TXIMSDK_TUIKit_iOS
//
// Created by annidyfeng on 2019/5/5.
// Copyright © 2023 Tencent. All rights reserved.
//
#import "TUIBlackListController_Minimalist.h"
#import <TIMCommon/TIMDefine.h>
#import <TUICore/TUIThemeManager.h>
@interface TUIBlackListController_Minimalist () <V2TIMFriendshipListener>
@property(nonatomic, strong) UILabel *noDataTipsLabel;
@end
@implementation TUIBlackListController_Minimalist
- (void)viewDidLoad {
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.view.backgroundColor = [UIColor whiteColor];
UILabel *titleLabel = [[UILabel alloc] init];
titleLabel.text = TIMCommonLocalizableString(TUIKitContactsBlackList);
titleLabel.font = [UIFont boldSystemFontOfSize:17.0];
titleLabel.textColor = TIMCommonDynamicColor(@"nav_title_text_color", @"#000000");
[titleLabel sizeToFit];
self.navigationItem.titleView = titleLabel;
self.tableView.delaysContentTouches = NO;
if (!self.viewModel) {
self.viewModel = TUIBlackListViewDataProvider_Minimalist.new;
@weakify(self);
[RACObserve(self.viewModel, isLoadFinished) subscribeNext:^(id finished) {
@strongify(self);
if ([(NSNumber *)finished boolValue]) [self.tableView reloadData];
}];
[self.viewModel loadBlackList];
}
[self.tableView registerClass:[TUICommonContactCell_Minimalist class] forCellReuseIdentifier:@"FriendCell"];
self.tableView.tableFooterView = [UIView new];
self.tableView.backgroundColor = self.view.backgroundColor;
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
[[V2TIMManager sharedInstance] addFriendListener:self];
[self.tableView addSubview:self.noDataTipsLabel];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.noDataTipsLabel.frame = CGRectMake(10, 60, self.view.bounds.size.width - 20, 40);
}
#pragma mark - V2TIMFriendshipListener
- (void)onBlackListAdded:(NSArray<V2TIMFriendInfo *> *)infoList {
[self.viewModel loadBlackList];
}
- (void)onBlackListDeleted:(NSArray *)userIDList {
[self.viewModel loadBlackList];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
self.noDataTipsLabel.hidden = (self.viewModel.blackListData.count != 0);
return self.viewModel.blackListData.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TUICommonContactCell_Minimalist *cell = [tableView dequeueReusableCellWithIdentifier:@"FriendCell" forIndexPath:indexPath];
TUICommonContactCellData_Minimalist *data = self.viewModel.blackListData[indexPath.row];
data.cselector = @selector(didSelectBlackList:);
cell.separtorView.hidden = YES;
[cell fillWithData:data];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 56;
}
- (void)didSelectBlackList:(TUICommonContactCell_Minimalist *)cell {
if (self.didSelectCellBlock) {
self.didSelectCellBlock(cell);
}
}
- (UILabel *)noDataTipsLabel {
if (_noDataTipsLabel == nil) {
_noDataTipsLabel = [[UILabel alloc] init];
_noDataTipsLabel.textColor = TIMCommonDynamicColor(@"nodata_tips_color", @"#999999");
_noDataTipsLabel.font = [UIFont systemFontOfSize:14.0];
_noDataTipsLabel.textAlignment = NSTextAlignmentCenter;
_noDataTipsLabel.text = TIMCommonLocalizableString(TUIKitContactNoBlockList);
}
return _noDataTipsLabel;
}
@end