Files
midi_ios/TUIKit/TUIContact/UI_Classic/UI/TUIBlackListController.m

112 lines
3.7 KiB
Mathematica
Raw Normal View History

2025-08-14 10:07:49 +08:00
//
// TUIBlackListController.m
// TXIMSDK_TUIKit_iOS
//
// Created by annidyfeng on 2019/5/5.
// Copyright © 2023 Tencent. All rights reserved.
//
#import "TUIBlackListController.h"
#import <TIMCommon/TIMDefine.h>
#import <TUICore/TUIThemeManager.h>
@interface TUIBlackListController () <V2TIMFriendshipListener>
@property(nonatomic, strong) UILabel *noDataTipsLabel;
@end
@implementation TUIBlackListController
- (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 = TIMCommonDynamicColor(@"controller_bg_color", @"#F2F3F5");
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.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 class] forCellReuseIdentifier:@"FriendCell"];
self.tableView.tableFooterView = [UIView new];
self.tableView.backgroundColor = self.view.backgroundColor;
[[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 *cell = [tableView dequeueReusableCellWithIdentifier:@"FriendCell" forIndexPath:indexPath];
TUICommonContactCellData *data = self.viewModel.blackListData[indexPath.row];
data.cselector = @selector(didSelectBlackList:);
[cell fillWithData:data];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 56;
}
- (void)didSelectBlackList:(TUICommonContactCell *)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