chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
//
|
||||
// TLContactsViewController.m
|
||||
// TLChat
|
||||
//
|
||||
// Created by 李伯坤 on 16/1/23.
|
||||
// Copyright © 2016年 李伯坤. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TLContactsViewController.h"
|
||||
#import "TLContactsAngel.h"
|
||||
#import "TLFriendHelper.h"
|
||||
|
||||
#import "TLSearchController.h"
|
||||
#import "TLContactsSearchResultViewController.h"
|
||||
#import "TLUserDetailViewController.h"
|
||||
#import "TLAddContactsViewController.h"
|
||||
|
||||
@interface TLContactsViewController ()
|
||||
|
||||
/// 列表
|
||||
@property (nonatomic, strong) UITableView *tableView;
|
||||
|
||||
/// 列表数据及控制中心
|
||||
@property (nonatomic, strong) TLContactsAngel *listAngel;
|
||||
|
||||
/// 总好友数
|
||||
@property (nonatomic, strong) UILabel *footerLabel;
|
||||
|
||||
/// 搜索
|
||||
@property (nonatomic, strong) TLSearchController *searchController;
|
||||
|
||||
@end
|
||||
|
||||
@implementation TLContactsViewController
|
||||
|
||||
- (id)init
|
||||
{
|
||||
if (self = [super init]) {
|
||||
initTabBarItem(self.tabBarItem, LOCSTR(@"通讯录"), @"tabbar_contacts", @"tabbar_contactsHL");
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)loadView
|
||||
{
|
||||
[super loadView];
|
||||
|
||||
// 初始化界面视图控件
|
||||
[self p_loadUI];
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
// 开始监听通讯录数据
|
||||
[self p_startMonitorContactsData];
|
||||
}
|
||||
|
||||
#pragma mark - # Pirvate Methods
|
||||
- (void)p_loadUI
|
||||
{
|
||||
[self.navigationItem setTitle:LOCSTR(@"通讯录")];
|
||||
|
||||
@weakify(self);
|
||||
[self addRightBarButtonWithImage:TLImage(@"nav_add_friend") actionBlick:^{
|
||||
@strongify(self);
|
||||
TLAddContactsViewController *addFriendVC = [[TLAddContactsViewController alloc] init];
|
||||
PushVC(addFriendVC);
|
||||
}];
|
||||
|
||||
self.tableView = self.view.addTableView(1)
|
||||
.backgroundColor([UIColor colorGrayBG]).separatorStyle(UITableViewCellSeparatorStyleNone)
|
||||
.tableHeaderView(self.searchController.searchBar).tableFooterView(self.footerLabel)
|
||||
.estimatedRowHeight(0).estimatedSectionFooterHeight(0).estimatedSectionHeaderHeight(0)
|
||||
.masonry(^ (MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(0);
|
||||
})
|
||||
.view;
|
||||
[self.tableView setSectionIndexBackgroundColor:[UIColor clearColor]];
|
||||
[self.tableView setSectionIndexColor:[UIColor colorBlackForNavBar]];
|
||||
|
||||
self.listAngel = [[TLContactsAngel alloc] initWithHostView:self.tableView pushAction:^(__kindof UIViewController *vc) {
|
||||
@strongify(self);
|
||||
PushVC(vc);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)p_startMonitorContactsData
|
||||
{
|
||||
[self.listAngel resetListWithContactsData:[TLFriendHelper sharedFriendHelper].data sectionHeaders:[TLFriendHelper sharedFriendHelper].sectionHeaders];
|
||||
[self.footerLabel setText:[NSString stringWithFormat:@"%ld%@", (long)[TLFriendHelper sharedFriendHelper].friendCount, LOCSTR(@"位联系人")]];
|
||||
[self.tableView reloadData];
|
||||
|
||||
@weakify(self);
|
||||
[[TLFriendHelper sharedFriendHelper] setDataChangedBlock:^(NSMutableArray *data, NSMutableArray *headers, NSInteger friendCount) {
|
||||
@strongify(self);
|
||||
[self.listAngel resetListWithContactsData:[TLFriendHelper sharedFriendHelper].data sectionHeaders:[TLFriendHelper sharedFriendHelper].sectionHeaders];
|
||||
[self.footerLabel setText:[NSString stringWithFormat:@"%ld%@", (long)friendCount, LOCSTR(@"位联系人")]];
|
||||
[self.tableView reloadData];
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - # Getters
|
||||
- (TLSearchController *)searchController
|
||||
{
|
||||
if (_searchController == nil) {
|
||||
TLContactsSearchResultViewController *searchVC = [[TLContactsSearchResultViewController alloc] init];
|
||||
@weakify(self);
|
||||
[searchVC setItemSelectedAction:^(TLContactsSearchResultViewController *searchVC, TLUser *userModel) {
|
||||
@strongify(self);
|
||||
[self.searchController setActive:NO];
|
||||
TLUserDetailViewController *detailVC = [[TLUserDetailViewController alloc] initWithUserModel:userModel];
|
||||
PushVC(detailVC);
|
||||
}];
|
||||
_searchController = [TLSearchController createWithResultsContrller:searchVC];
|
||||
[_searchController setEnableVoiceInput:YES];
|
||||
}
|
||||
return _searchController;
|
||||
}
|
||||
|
||||
- (UILabel *)footerLabel
|
||||
{
|
||||
if (_footerLabel == nil) {
|
||||
_footerLabel= [[UILabel alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 50.0f)];
|
||||
[_footerLabel setTextAlignment:NSTextAlignmentCenter];
|
||||
[_footerLabel setFont:[UIFont systemFontOfSize:17.0f]];
|
||||
[_footerLabel setTextColor:[UIColor grayColor]];
|
||||
}
|
||||
return _footerLabel;
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user