diff --git a/Ash_AWord.xcworkspace/xcuserdata/xmfish.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Ash_AWord.xcworkspace/xcuserdata/xmfish.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index dc44ac9..39a08dc 100644 --- a/Ash_AWord.xcworkspace/xcuserdata/xmfish.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Ash_AWord.xcworkspace/xcuserdata/xmfish.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -2649,11 +2649,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456994426.356087" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "158" - endingLineNumber = "158" + startingLineNumber = "161" + endingLineNumber = "161" landmarkName = "-didSendText:" landmarkType = "5"> @@ -2729,11 +2729,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456994426.356087" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "283" - endingLineNumber = "283" + startingLineNumber = "286" + endingLineNumber = "286" landmarkName = "-moreViewPhotoAction:" landmarkType = "5"> @@ -2837,15 +2837,15 @@ @@ -2853,15 +2853,15 @@ @@ -2885,31 +2885,15 @@ - - - - @@ -2921,11 +2905,27 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "653" - endingLineNumber = "653" + startingLineNumber = "647" + endingLineNumber = "647" + landmarkName = "-reloadTableViewDataWithMessage:" + landmarkType = "5"> + + + + @@ -2937,11 +2937,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "712" - endingLineNumber = "712" + startingLineNumber = "726" + endingLineNumber = "726" landmarkName = "-formatMessages:" landmarkType = "5"> @@ -2985,11 +2985,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "782" - endingLineNumber = "782" + startingLineNumber = "796" + endingLineNumber = "796" landmarkName = "-didFetchingMessageAttachments:progress:" landmarkType = "5"> @@ -3049,11 +3049,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "786" - endingLineNumber = "786" + startingLineNumber = "800" + endingLineNumber = "800" landmarkName = "-loadMoreMessages" landmarkType = "5"> @@ -3065,11 +3065,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "791" - endingLineNumber = "791" + startingLineNumber = "805" + endingLineNumber = "805" landmarkName = "-loadMoreMessages" landmarkType = "5"> @@ -3081,11 +3081,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "685" - endingLineNumber = "685" + startingLineNumber = "695" + endingLineNumber = "695" landmarkName = "-formatMessages:" landmarkType = "5"> @@ -3129,11 +3129,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "688" - endingLineNumber = "688" + startingLineNumber = "698" + endingLineNumber = "698" landmarkName = "-formatMessages:" landmarkType = "5"> @@ -3269,15 +3269,15 @@ @@ -3289,11 +3289,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "659" - endingLineNumber = "659" + startingLineNumber = "669" + endingLineNumber = "669" landmarkName = "-didReceiveMessageId:chatter:error:" landmarkType = "5"> @@ -3353,11 +3353,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "654" - endingLineNumber = "654" + startingLineNumber = "664" + endingLineNumber = "664" landmarkName = "-didReceiveMessage:" landmarkType = "5"> @@ -3369,11 +3369,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "655" - endingLineNumber = "655" + startingLineNumber = "665" + endingLineNumber = "665" landmarkName = "-didReceiveMessageId:chatter:error:" landmarkType = "5"> @@ -3785,11 +3785,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "584" - endingLineNumber = "584" + startingLineNumber = "594" + endingLineNumber = "594" landmarkName = "-callSessionStatusChanged:changeReason:error:" landmarkType = "5"> @@ -3849,11 +3849,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456994426.356087" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "341" - endingLineNumber = "341" + startingLineNumber = "344" + endingLineNumber = "344" landmarkName = "-moreViewAudioCallAction:" landmarkType = "5"> @@ -3897,11 +3897,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "894" - endingLineNumber = "894" + startingLineNumber = "925" + endingLineNumber = "925" landmarkName = "-proximitySensorChanged:" landmarkType = "5"> @@ -3913,11 +3913,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456997414.065256" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "892" - endingLineNumber = "892" + startingLineNumber = "923" + endingLineNumber = "923" landmarkName = "-proximitySensorChanged:" landmarkType = "5"> @@ -3989,15 +3989,15 @@ @@ -4025,11 +4025,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "456933977.786965" + timestampString = "456993612.555684" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "98" - endingLineNumber = "98" + startingLineNumber = "99" + endingLineNumber = "99" landmarkName = "-viewDidLoad" landmarkType = "5"> @@ -4162,5 +4162,245 @@ landmarkType = "5"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatTimeCell.m b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatTimeCell.m index 2bc129e..0e76f3d 100644 --- a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatTimeCell.m +++ b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatTimeCell.m @@ -27,6 +27,8 @@ self.textLabel.textColor = [UIColor grayColor]; self.selectionStyle = UITableViewCellSelectionStyleNone; + + return self; } diff --git a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.h b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.h index 7eaf40e..7c86f70 100644 --- a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.h +++ b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.h @@ -28,6 +28,7 @@ extern NSString *const kRouterEventChatHeadImageTapEventName; +typedef void (^DelMessage)(NSInteger); @interface EMChatViewBaseCell : UITableViewCell { UIImageView *_headImageView; @@ -39,6 +40,7 @@ extern NSString *const kRouterEventChatHeadImageTapEventName; } @property (nonatomic, strong) MessageModel *messageModel; +@property (strong, nonatomic)DelMessage delMessage; @property (nonatomic, strong) UIImageView *headImageView; //头像 @property (nonatomic, strong) UILabel *nameLabel; //姓名(暂时不支持显示) diff --git a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.m b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.m index be3ba6f..1191a12 100644 --- a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.m +++ b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewBaseCell.m @@ -12,6 +12,8 @@ #import "EMChatViewBaseCell.h" //#import "UIImageView+EMWebCache.h" +#import "ReportViewController.h" +#import "AppDelegate.h" NSString *const kRouterEventChatHeadImageTapEventName = @"kRouterEventChatHeadImageTapEventName"; @@ -27,6 +29,11 @@ NSString *const kRouterEventChatHeadImageTapEventName = @"kRouterEventChatHeadIm if (self) { // Initialization code UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(headImagePressed:)]; + + UILongPressGestureRecognizer * longPressGr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressToDo:)]; + longPressGr.minimumPressDuration = 1.0; + [self addGestureRecognizer:longPressGr]; + CGFloat originX = HEAD_PADDING; if (model.isSender) { originX = self.bounds.size.width - HEAD_SIZE - HEAD_PADDING; @@ -73,6 +80,7 @@ NSString *const kRouterEventChatHeadImageTapEventName = @"kRouterEventChatHeadIm // Configure the view for the selected state } + #pragma mark - setter - (void)setMessageModel:(MessageModel *)messageModel @@ -86,7 +94,87 @@ NSString *const kRouterEventChatHeadImageTapEventName = @"kRouterEventChatHeadIm } #pragma mark - private +-(void)longPressToDo:(UILongPressGestureRecognizer *)gesture +{ + if(gesture.state == UIGestureRecognizerStateBegan) + { + CGPoint point = [gesture locationInView:self.superview]; + + + //启动弹出菜单 + NSMutableArray *menuItems = [NSMutableArray array]; + + UIMenuItem *messageCopyItem = [[UIMenuItem alloc] initWithTitle:@"复制" action:@selector(messageCopy:)]; + [menuItems addObject:messageCopyItem]; + + + UIMenuItem *messageDelItem = [[UIMenuItem alloc] initWithTitle:@"删除" action:@selector(messageDel:)]; + [menuItems addObject:messageDelItem]; + + if (!_messageModel.isSender) { + UIMenuItem *messageRepItem = [[UIMenuItem alloc] initWithTitle:@"举报" action:@selector(messageRep:)]; + [menuItems addObject:messageRepItem]; + } + + + UIMenuController *menu = [UIMenuController sharedMenuController]; + [menu setMenuItems:menuItems]; + [self becomeFirstResponder]; + CGRect targetRect = self.frame; + targetRect.origin.x = point.x; + targetRect.origin.y = point.y; + targetRect.size.height = 50; + targetRect.size.width = 0; + [menu setTargetRect:targetRect inView:self.superview]; + [menu setMenuVisible:YES animated:YES]; + } +} +-(void)messageRep:(id)sender { + UIMenuController *menu = [UIMenuController sharedMenuController]; + [menu setMenuVisible:NO animated:YES]; + + ReportViewController* reportViewController = [[ReportViewController alloc] init]; + reportViewController.authorName = _messageModel.nickName; + reportViewController.msgId = 0; + reportViewController.hidesBottomBarWhenPushed = YES; + [[AppDelegate visibleViewController].navigationController pushViewController:reportViewController animated:YES]; +} +-(void)messageCopy:(id)sender{ + + UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; + if (_messageModel.content) { + pasteboard.string = _messageModel.content; + } +} +-(void)messageDel:(id)sender{ + + UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"确认删除" message:@"是否删除" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"删除", nil]; + alertView.tag = 0; + [alertView show]; +} +-(BOOL)canPerformAction:(SEL)action withSender:(id)sender +{ + + if ( action == @selector(messageRep:) || action == @selector(messageCopy:)|| action == @selector(messageDel:)) { + return YES; + } + return NO; +} +-(BOOL) canBecomeFirstResponder{ + return YES; +} + +#pragma mark --UIAlertViewDelegate +-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex +{ + //删除 + if (buttonIndex == 1) { + if (_delMessage) { + _delMessage(self.tag); + } + } +} -(void)headImagePressed:(id)sender { [super routerEventWithName:kRouterEventChatHeadImageTapEventName userInfo:@{KMESSAGEKEY:self.messageModel}]; diff --git a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewCell.m b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewCell.m index 2f1e496..65d88a6 100644 --- a/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewCell.m +++ b/Ash_AWord/ViewControllers/Chat/ChatCell/EMChatViewCell.m @@ -166,6 +166,7 @@ NSString *const kShouldResendCell = @"kShouldResendCell"; //已读 _hasRead = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, SEND_STATUS_SIZE, SEND_STATUS_SIZE)]; _hasRead.text = @"已读"; + _hasRead.textColor = [UIColor lightGrayColor]; _hasRead.textAlignment = NSTextAlignmentCenter; _hasRead.font = [UIFont systemFontOfSize:12]; [_hasRead sizeToFit]; diff --git a/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m b/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m index c190ce7..e2f7c09 100644 --- a/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m +++ b/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m @@ -27,7 +27,8 @@ #import "NSDateFormatter+Category.h" #import "MessageReadManager.h" #import "SRRefreshView.h" - +#import "PersonalInfoViewController.h" +#import "AppDelegate.h" #define KPageCount 20 @interface ChatMainViewController () @@ -124,6 +125,8 @@ UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyBoardHidden)]; [self.view addGestureRecognizer:tap]; + + [self.tableView addSubview:self.slimeView]; @@ -257,7 +260,7 @@ } } EMChatVideo *chatVideo = [[EMChatVideo alloc] initWithFile:[mp4 relativePath] displayName:@"video.mp4"]; -// [self sendVideoMessage:chatVideo]; + [self sendVideoMessage:chatVideo]; }else{ UIImage *orgImage = info[UIImagePickerControllerOriginalImage]; @@ -457,7 +460,10 @@ cell.selectionStyle = UITableViewCellSelectionStyleNone; } cell.messageModel = model; - + [cell setDelMessage:^(NSInteger index){ + [self deleteMsgWithIndex:index]; + }]; + cell.tag = indexPath.row; return cell; } } @@ -557,10 +563,14 @@ } MessageModel *model = [MessageModelManager modelWithMessage:message]; - model.nickName = model.username; + if (model.isSender){ + model.nickName = [AWordUser sharedInstance].userName; + model.headImageURL = [NSURL URLWithString:[AWordUser sharedInstance].userAvatar]; }else{ + model.nickName = _otherUserName; + model.headImageURL = [NSURL URLWithString:_otherUserAvatar]; } @@ -696,8 +706,12 @@ } MessageModel *model = [MessageModelManager modelWithMessage:message]; - model.nickName = model.username; + if (model.isSender) { + model.nickName = [AWordUser sharedInstance].userName; + }else{ + model.nickName = _otherUserName; + } if (model.isSender){ model.headImageURL = [NSURL URLWithString:[AWordUser sharedInstance].userAvatar]; }else{ @@ -781,7 +795,7 @@ } - (void)didFetchingMessageAttachments:(EMMessage *)message progress:(float)progress{ - NSLog(@"didFetchingMessageAttachment: %f", progress); + DLog(@"didFetchingMessageAttachment: %f", progress); } - (void)loadMoreMessages { @@ -867,6 +881,23 @@ } }); } + +- (void)didReceiveHasReadResponse:(EMReceipt *)resp; +{ + + for (int i=0; i<_dataSource.count; i++) { + + MessageModel* message = [_dataSource objectAtIndex:i]; + if ([message isKindOfClass:[NSString class]]) { + continue; + } + if ([message.messageId isEqualToString:resp.chatId]) { + + [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:i inSection:0]] withRowAnimation:UITableViewRowAnimationFade]; + break; + } + } +} - (void)stopAudioPlayingWithChangeCategory:(BOOL)isChange { //停止音频播放及播放动画 @@ -945,6 +976,14 @@ [self.tableView endUpdates]; }else if([eventName isEqualToString:kRouterEventChatCellVideoTapEventName]){ [self chatVideoCellPressed:model]; + }else if([eventName isEqualToString:kRouterEventChatHeadImageTapEventName]){ + if ([_otherUserId isEqualToString:@"admin"]) { + return; + } + PersonalInfoViewController* personalInfoViewController = [[PersonalInfoViewController alloc] init]; + personalInfoViewController.hidesBottomBarWhenPushed = YES; + personalInfoViewController.otherUserId = _otherUserId; + [[AppDelegate visibleViewController].navigationController pushViewController:personalInfoViewController animated:YES]; } } @@ -1150,6 +1189,32 @@ } } +- (void)deleteMsgWithIndex:(NSInteger)index; +{ + if (index > 0) { + MessageModel *model = [_dataSource objectAtIndex:index]; + NSMutableIndexSet *indexs = [NSMutableIndexSet indexSetWithIndex:index]; + [_conversation removeMessage:model.message]; + [_messages removeObject:model.message]; + NSMutableArray *indexPaths = [NSMutableArray arrayWithObjects:[NSIndexPath indexPathForRow:index inSection:0], nil];; + if (index - 1 >= 0) { + id nextMessage = nil; + id prevMessage = [_dataSource objectAtIndex:(index- 1)]; + if (index + 1 < [_dataSource count]) { + nextMessage = [_dataSource objectAtIndex:(index + 1)]; + } + if ((!nextMessage || [nextMessage isKindOfClass:[NSString class]]) && [prevMessage isKindOfClass:[NSString class]]) { + [indexs addIndex:index - 1]; + [indexPaths addObject:[NSIndexPath indexPathForRow:(index - 1) inSection:0]]; + } + } + + [_dataSource removeObjectsAtIndexes:indexs]; + [self.tableView beginUpdates]; + [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade]; + [self.tableView endUpdates]; + } +} - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; diff --git a/Ash_AWord/ViewControllers/Main/ReportViewController.m b/Ash_AWord/ViewControllers/Main/ReportViewController.m index 1c1c389..784170b 100644 --- a/Ash_AWord/ViewControllers/Main/ReportViewController.m +++ b/Ash_AWord/ViewControllers/Main/ReportViewController.m @@ -38,6 +38,21 @@ [MBProgressHUD errorHudWithView:nil label:@"请输入举报内容" hidesAfter:1.0]; return; } + if (_msgId <= 0) { + [MBProgressHUD hudWithView:self.view label:@"举报中"]; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*1.0), dispatch_get_main_queue(), ^{ + [[NSNotificationCenter defaultCenter] postNotificationName:kLoginSuccessNotificationName object:nil]; + [MBProgressHUD hideAllHUDsForView:self.view animated:YES]; + [MBProgressHUD checkHudWithView:nil label:@"举报成功" hidesAfter:1.0]; + [self.view endEditing:YES]; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*1.0), dispatch_get_main_queue(), ^{ + [self.navigationController popViewControllerAnimated:YES]; + }); + }); + return; + } [MBProgressHUD hudWithView:self.view label:@"举报中"]; PropertyEntity* pro = [LoginViewModel requireReportWith:_msgType withMsgId:_msgId withContent:_reportContentTextView.text]; [RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) { @@ -46,7 +61,8 @@ if ([loginViewModel success]) { [[NSNotificationCenter defaultCenter] postNotificationName:kLoginSuccessNotificationName object:nil]; - + [self.view endEditing:YES]; + [MBProgressHUD checkHudWithView:nil label:@"举报成功" hidesAfter:1.0]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*1.0), dispatch_get_main_queue(), ^{ [self.navigationController popViewControllerAnimated:YES]; diff --git a/Ash_AWord/ViewControllers/My/MessageListViewController.m b/Ash_AWord/ViewControllers/My/MessageListViewController.m index c99c440..e98dffc 100644 --- a/Ash_AWord/ViewControllers/My/MessageListViewController.m +++ b/Ash_AWord/ViewControllers/My/MessageListViewController.m @@ -10,7 +10,7 @@ #import "MessageListTableViewCell.h" #import "ChatMainViewController.h" #import "UserViewModel.h" -@interface MessageListViewController () +@interface MessageListViewController () { NSInteger _page; NSMutableArray* _dataArr; @@ -26,11 +26,14 @@ // Do any additional setup after loading the view from its nib. [self customViewDidLoad]; - _userArr = [NSMutableArray array]; +// _userArr = [NSMutableArray array]; self.navigationItem.title = @"消息列表"; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"清空列表" style:UIBarButtonItemStyleDone target:self action:@selector(clearList)]; + self.tableView.delegate = self; self.tableView.dataSource = self; + [self.tableView reloadData]; [self.tableView removeFooter]; } @@ -41,9 +44,29 @@ -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - [self loadData]; - + + [self headerBeginRefreshing]; + } + +-(void)clearList +{ + UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"确认清空" message:@"是否清空" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"清空", nil]; + alertView.tag = 0; + [alertView show]; +} +#pragma mark --UIAlertViewDelegate +-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex +{ + //删除 + if (buttonIndex == 1) { + if ([[EaseMob sharedInstance].chatManager removeAllConversationsWithDeleteMessages:YES append2Chat:YES]) { + [_dataArr removeAllObjects]; + [self.tableView reloadData]; + } + } +} + -(void)headerRereshing { _page=1; @@ -78,13 +101,18 @@ [RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) { if ([viewModel success]) { - [_userArr removeAllObjects]; _userArr = [NSMutableArray arrayWithArray:[(UserViewModel*)viewModel userBaseInfoArr]]; + }else{ + [_dataArr removeAllObjects]; +// [MBProgressHUD errorHudWithView:self.view label:[viewModel errMessage] hidesAfter:1.0]; } [self.tableView reloadData]; [self.tableView.header endRefreshing]; } failedBlock:^(NSError *error) { + [MBProgressHUD errorHudWithView:self.view label:kNetworkErrorTips hidesAfter:1.0]; + + [_dataArr removeAllObjects]; [self.tableView reloadData]; [self.tableView.header endRefreshing]; }]; @@ -142,6 +170,23 @@ return cell; } +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { + return YES; +} +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + + if (editingStyle == UITableViewCellEditingStyleDelete) { + + EMConversation* conversation = [_dataArr objectAtIndex:indexPath.row]; + if ( [[EaseMob sharedInstance].chatManager removeConversationByChatter:conversation.chatter deleteMessages:YES append2Chat:YES]) { + [_dataArr removeObjectAtIndex:indexPath.row]; + // Delete the row from the data source. + [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; + } + + + } +} -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES];