From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 12 Jul 2018 13:44:34 +0800 Subject: [PATCH] bug修复和功能优化 --- screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseUsersListViewController.m | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 180 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseUsersListViewController.m b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseUsersListViewController.m new file mode 100755 index 0000000..3ccde7a --- /dev/null +++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/ViewController/EaseUsersListViewController.m @@ -0,0 +1,180 @@ +/************************************************************ + * * Hyphenate CONFIDENTIAL + * __________________ + * Copyright (C) 2016 Hyphenate Inc. All rights reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Hyphenate Inc. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Hyphenate Inc. + */ + +#import "EaseUsersListViewController.h" + +#import "UIViewController+HUD.h" +#import "EaseMessageViewController.h" + +@interface EaseUsersListViewController () + +@property (strong, nonatomic) UISearchBar *searchBar; + +@end + +@implementation EaseUsersListViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + + [self tableViewDidTriggerHeaderRefresh]; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +#pragma mark - setter + +- (void)setShowSearchBar:(BOOL)showSearchBar +{ + if (_showSearchBar != showSearchBar) { + _showSearchBar = showSearchBar; + } +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + // Return the number of sections. + return 2; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + // Return the number of rows in the section. + if (section == 0) { + if ([_dataSource respondsToSelector:@selector(numberOfRowInUserListViewController:)]) { + return [_dataSource numberOfRowInUserListViewController:self]; + } + return 0; + } + return [self.dataArray count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + NSString *CellIdentifier = [EaseUserCell cellIdentifierWithModel:nil]; + EaseUserCell *cell = (EaseUserCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; + + // Configure the cell... + if (cell == nil) { + cell = [[EaseUserCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; + } + + if (indexPath.section == 0) { + return nil; + } else { + id<IUserModel> model = nil; + if ([_dataSource respondsToSelector:@selector(userListViewController:userModelForIndexPath:)]) { + model = [_dataSource userListViewController:self userModelForIndexPath:indexPath]; + } + else { + model = [self.dataArray objectAtIndex:indexPath.row]; + } + + if (model) { + cell.model = model; + } + + return cell; + } +} + +#pragma mark - Table view delegate + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +{ + return [EaseUserCell cellHeightWithModel:nil]; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + + id<IUserModel> model = nil; + if (_dataSource && [_dataSource respondsToSelector:@selector(userListViewController:userModelForIndexPath:)]) { + model = [_dataSource userListViewController:self userModelForIndexPath:indexPath]; + } + else { + model = [self.dataArray objectAtIndex:indexPath.row]; + } + + if (model) { + if (_delegate && [_delegate respondsToSelector:@selector(userListViewController:didSelectUserModel:)]) { + [_delegate userListViewController:self didSelectUserModel:model]; + } else { + EaseMessageViewController *viewController = [[EaseMessageViewController alloc] initWithConversationChatter:model.buddy conversationType:EMConversationTypeChat]; + viewController.title = model.nickname; + [self.navigationController pushViewController:viewController animated:YES]; + } + }} + +#pragma mark - data + +- (void)tableViewDidTriggerHeaderRefresh +{ + __weak typeof(self) weakself = self; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + EMError *error = nil; + NSArray *buddyList = [[EMClient sharedClient].contactManager getContactsFromServerWithError:&error]; + if (!error) { + NSMutableArray *contactsSource = [NSMutableArray arrayWithArray:buddyList]; + NSMutableArray *tempDataArray = [NSMutableArray array]; + + // remove the contact that is currently in the black list + NSArray *blockList = [[EMClient sharedClient].contactManager getBlackList]; + for (NSInteger i = 0; i < buddyList.count; i++) { + NSString *buddy = [buddyList objectAtIndex:i]; + if (![blockList containsObject:buddy]) { + [contactsSource addObject:buddy]; + + id<IUserModel> model = nil; + if (weakself.dataSource && [weakself.dataSource respondsToSelector:@selector(userListViewController:modelForBuddy:)]) { + model = [weakself.dataSource userListViewController:self modelForBuddy:buddy]; + } + else{ + model = [[EaseUserModel alloc] initWithBuddy:buddy]; + } + + if(model){ + [tempDataArray addObject:model]; + } + } + } + dispatch_async(dispatch_get_main_queue(), ^{ + [weakself.dataArray removeAllObjects]; + [weakself.dataArray addObjectsFromArray:tempDataArray]; + [weakself.tableView reloadData]; + }); + } + [weakself tableViewDidFinishTriggerHeader:YES reload:NO]; + }); +} + +- (void)dealloc +{ +} + +@end -- Gitblit v1.8.0