From bf948ed52f137bbd159b7f6ef576fc9340beb8bf Mon Sep 17 00:00:00 2001 From: wu736139669 Date: Sun, 28 Jun 2015 12:47:29 +0800 Subject: [PATCH] new --- Ash_AWord.xcodeproj/project.pbxproj | 10 + .../xcdebugger/Breakpoints_v2.xcbkptlist | 4369 +---------------- Ash_AWord/Utility/Network/PropertyEntity.h | 1 + Ash_AWord/Utility/Network/RequireEngine.m | 6 +- .../Chat/ChatMainViewController.m | 12 +- .../ViewControllers/Chat/DXChatBarMoreView.h | 2 +- .../Chat/SlimeRefresh/SRRefreshView.h | 2 +- .../ViewControllers/Main/MainViewController.m | 2 +- .../Message/MessageCommentViewController.h | 2 + .../Message/MessageCommentViewController.m | 67 +- .../My/MessageListViewController.m | 20 +- .../My/MessageSetViewController.h | 13 + .../My/MessageSetViewController.m | 37 + .../My/MessageSetViewController.xib | 19 + .../My/MyMessageViewController.m | 5 +- .../ViewControllers/My/MyNoteViewController.m | 5 +- .../My/MyRelateViewController.m | 39 +- .../My/PersonalInfoViewController.m | 19 +- .../ViewControllers/My/SetUpViewController.m | 34 +- .../My/SetUserInfoViewController.m | 5 +- .../Note/NoteCommentViewController.h | 1 + .../Note/NoteCommentViewController.m | 77 +- .../User/PraiseUserListViewController.m | 68 +- .../ViewModels/Common/CommentViewModel.h | 2 + .../ViewModels/Common/CommentViewModel.m | 14 + Ash_AWord/ViewModels/Common/UserViewModel.h | 2 + Ash_AWord/ViewModels/Common/UserViewModel.m | 17 + .../ViewModels/Message/MessageViewModel.h | 4 + .../ViewModels/Message/MessageViewModel.m | 23 +- Ash_AWord/ViewModels/Note/NoteViewModel.h | 2 + Ash_AWord/ViewModels/Note/NoteViewModel.m | 23 + Ash_AWord/Views/Common/CommentTableViewCell.m | 11 +- .../Views/Common/CommentTableViewCell.xib | 20 +- 33 files changed, 559 insertions(+), 4374 deletions(-) create mode 100644 Ash_AWord/ViewControllers/My/MessageSetViewController.h create mode 100644 Ash_AWord/ViewControllers/My/MessageSetViewController.m create mode 100644 Ash_AWord/ViewControllers/My/MessageSetViewController.xib diff --git a/Ash_AWord.xcodeproj/project.pbxproj b/Ash_AWord.xcodeproj/project.pbxproj index 99dfef2..3f627e6 100644 --- a/Ash_AWord.xcodeproj/project.pbxproj +++ b/Ash_AWord.xcodeproj/project.pbxproj @@ -210,6 +210,8 @@ A978CB441B3A3D8800028C4A /* chatListCellHead@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A978CB431B3A3D8800028C4A /* chatListCellHead@2x.png */; }; A97938751B20A63D00180C08 /* UserViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A97938741B20A63D00180C08 /* UserViewModel.m */; }; A97938781B20BB0900180C08 /* CommentViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A97938771B20BB0900180C08 /* CommentViewModel.m */; }; + A97B1A3C1B3FA80E00D538F9 /* MessageSetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A97B1A3A1B3FA80E00D538F9 /* MessageSetViewController.m */; }; + A97B1A3D1B3FA80E00D538F9 /* MessageSetViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A97B1A3B1B3FA80E00D538F9 /* MessageSetViewController.xib */; }; A97C54CD1AC8F10F0038818A /* BaseViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A97C54BD1AC8F10F0038818A /* BaseViewModel.m */; }; A97C54CF1AC8F10F0038818A /* NSString+HXAddtions.m in Sources */ = {isa = PBXBuildFile; fileRef = A97C54C11AC8F10F0038818A /* NSString+HXAddtions.m */; }; A97C54D01AC8F10F0038818A /* PropertyEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = A97C54C31AC8F10F0038818A /* PropertyEntity.m */; }; @@ -787,6 +789,9 @@ A97938741B20A63D00180C08 /* UserViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UserViewModel.m; sourceTree = ""; }; A97938761B20BB0900180C08 /* CommentViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommentViewModel.h; sourceTree = ""; }; A97938771B20BB0900180C08 /* CommentViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommentViewModel.m; sourceTree = ""; }; + A97B1A391B3FA80E00D538F9 /* MessageSetViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageSetViewController.h; sourceTree = ""; }; + A97B1A3A1B3FA80E00D538F9 /* MessageSetViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageSetViewController.m; sourceTree = ""; }; + A97B1A3B1B3FA80E00D538F9 /* MessageSetViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MessageSetViewController.xib; sourceTree = ""; }; A97C54BC1AC8F10F0038818A /* BaseViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewModel.h; sourceTree = ""; }; A97C54BD1AC8F10F0038818A /* BaseViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewModel.m; sourceTree = ""; }; A97C54C01AC8F10F0038818A /* NSString+HXAddtions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+HXAddtions.h"; sourceTree = ""; }; @@ -1230,6 +1235,9 @@ A97D70F31B3E40520070BE84 /* MyRelateViewController.h */, A97D70F41B3E40520070BE84 /* MyRelateViewController.m */, A97D70F51B3E40520070BE84 /* MyRelateViewController.xib */, + A97B1A391B3FA80E00D538F9 /* MessageSetViewController.h */, + A97B1A3A1B3FA80E00D538F9 /* MessageSetViewController.m */, + A97B1A3B1B3FA80E00D538F9 /* MessageSetViewController.xib */, ); path = My; sourceTree = ""; @@ -2567,6 +2575,7 @@ A9B6DFE21B202E7D0003C1BC /* comment_support_plus@2x.png in Resources */, A971EDE61B32B7A00023740E /* chatBar_record@2x.png in Resources */, A971EDE71B32B7A00023740E /* chatBar_recordBg@2x.png in Resources */, + A97B1A3D1B3FA80E00D538F9 /* MessageSetViewController.xib in Resources */, A97559D01ACBF0BC004ADA42 /* btn_share_clicked@2x.png in Resources */, A90BA01F1AD606AE00728393 /* voice-record-icon@2x.png in Resources */, A9E2711B1ADB97ED000B1542 /* Default-568h.png in Resources */, @@ -2906,6 +2915,7 @@ A94DF6351AD4D94E00DCDCB0 /* MyNoteViewController.m in Sources */, A9754A211ADC080E0018BAAD /* HttpDataSource.m in Sources */, A9754A201ADC080E0018BAAD /* DataSourceWrapper.m in Sources */, + A97B1A3C1B3FA80E00D538F9 /* MessageSetViewController.m in Sources */, A9F917D71B39091A0007A3AC /* NSDate+Category.m in Sources */, A971EDB71B32B5740023740E /* EMCDDeviceManagerBase.m in Sources */, A96862741ACCF13300DDAA6B /* PSTCollectionViewItemKey.m in Sources */, 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 f197433..304188d 100644 --- a/Ash_AWord.xcworkspace/xcuserdata/xmfish.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Ash_AWord.xcworkspace/xcuserdata/xmfish.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -3,118 +3,6 @@ type = "0" version = "2.0"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1465,11 +26,11 @@ ignoreCount = "0" continueAfterRunningActions = "No" filePath = "Ash_AWord/Utility/Network/RequireEngine.m" - timestampString = "455772130.614624" + timestampString = "457152630.266374" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "117" - endingLineNumber = "117" + startingLineNumber = "116" + endingLineNumber = "116" landmarkName = "+requireWithProperty:completionBlock:failedBlock:" landmarkType = "5"> @@ -1480,2620 +41,12 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/Views/Note/NoteTableViewCell.m" - timestampString = "455535412.426096" - startingColumnNumber = "9223372036854775807" - endingColumnNumber = "9223372036854775807" - startingLineNumber = "180" - endingLineNumber = "180" - landmarkName = "-canPerformAction:withSender:" - landmarkType = "5"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4104,13 +57,13 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/Utility/Network/BaseViewModel.m" - timestampString = "457061404.832726" + filePath = "Ash_AWord/Utility/Network/RequireEngine.m" + timestampString = "457152656.27188" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "23" - endingLineNumber = "23" - landmarkName = "-initWithDictionary:error:" + startingLineNumber = "35" + endingLineNumber = "35" + landmarkName = "+responseFromCacheWithAPIKey:property:completionBlock:" landmarkType = "5"> @@ -4120,13 +73,13 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/Utility/Network/PropertyEntity.m" - timestampString = "456978671.538823" + filePath = "Ash_AWord/Utility/Network/RequireEngine.m" + timestampString = "457152679.4922" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "29" - endingLineNumber = "29" - landmarkName = "-encodePro" + startingLineNumber = "20" + endingLineNumber = "20" + landmarkName = "+saveCacheWithAPIKey:property:data:" landmarkType = "5"> @@ -4136,13 +89,13 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/Views/Common/CommentTableViewCell.m" - timestampString = "457066712.681288" + filePath = "Ash_AWord/Utility/Network/RequireEngine.m" + timestampString = "457152718.755914" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "145" - endingLineNumber = "145" - landmarkName = "-longPressToDo:" + startingLineNumber = "21" + endingLineNumber = "21" + landmarkName = "+saveCacheWithAPIKey:property:data:" landmarkType = "5"> @@ -4152,13 +105,13 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.m" - timestampString = "456991016.022565" + filePath = "Ash_AWord/Utility/Network/RequireEngine.m" + timestampString = "457152896.798849" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "302" - endingLineNumber = "302" - landmarkName = "-headerBeginRefreshing" + startingLineNumber = "28" + endingLineNumber = "28" + landmarkName = "+saveCacheWithAPIKey:property:data:" landmarkType = "5"> @@ -4168,13 +121,13 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/ViewControllers/My/MessageListViewController.m" - timestampString = "456992825.022664" + filePath = "Ash_AWord/Utility/Network/RequireEngine.m" + timestampString = "457152916.983617" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "94" - endingLineNumber = "94" - landmarkName = "-loadData" + startingLineNumber = "155" + endingLineNumber = "155" + landmarkName = "+requireWithProperty:completionBlock:failedBlock:" landmarkType = "5"> @@ -4184,93 +137,13 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "457061404.832726" + filePath = "Ash_AWord/ViewControllers/Note/NoteCommentViewController.m" + timestampString = "457154048.604403" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "951" - endingLineNumber = "951" - landmarkName = "-routerEventWithName:userInfo:" - landmarkType = "5"> - - - - - - - - - - - - - - - - - - - - @@ -4280,13 +153,13 @@ shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "457061404.832726" + filePath = "Ash_AWord/ViewControllers/Message/MessageCommentViewController.m" + timestampString = "457154158.047892" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "869" - endingLineNumber = "869" - landmarkName = "-shouldMarkMessageAsRead" + startingLineNumber = "124" + endingLineNumber = "124" + landmarkName = "-loadRecordInfo" landmarkType = "5"> @@ -4296,44 +169,44 @@ shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "457061404.832726" + filePath = "Ash_AWord/ViewControllers/My/MyRelateViewController.m" + timestampString = "457159203.288928" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "878" - endingLineNumber = "878" - landmarkName = "-sendHasReadResponseForMessages:" + startingLineNumber = "148" + endingLineNumber = "148" + landmarkName = "-tableView:didSelectRowAtIndexPath:" landmarkType = "5"> + startingLineNumber = "148" + endingLineNumber = "148" + offsetFromSymbolStart = "177"> + startingLineNumber = "148" + endingLineNumber = "148" + offsetFromSymbolStart = "43"> @@ -4344,13 +217,13 @@ shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "457061404.832726" + filePath = "Ash_AWord/ViewControllers/My/MyRelateViewController.m" + timestampString = "457159211.685007" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "881" - endingLineNumber = "881" - landmarkName = "-sendHasReadResponseForMessages:" + startingLineNumber = "149" + endingLineNumber = "149" + landmarkName = "-tableView:didSelectRowAtIndexPath:" landmarkType = "5"> @@ -4360,13 +233,13 @@ shouldBeEnabled = "Yes" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "457061404.832726" + filePath = "Ash_AWord/ViewModels/Common/CommentViewModel.m" + timestampString = "457159240.947649" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "938" - endingLineNumber = "938" - landmarkName = "-markMessagesAsRead:" + startingLineNumber = "112" + endingLineNumber = "112" + landmarkName = "+requireReadCommentWithCommentId:" landmarkType = "5"> @@ -4376,109 +249,13 @@ shouldBeEnabled = "No" ignoreCount = "0" continueAfterRunningActions = "No" - filePath = "Ash_AWord/ViewControllers/Chat/ChatMainViewController.m" - timestampString = "457061404.832726" + filePath = "Ash_AWord/Utility/Network/PropertyEntity.m" + timestampString = "457159292.168928" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "550" - endingLineNumber = "550" - landmarkName = "-addMessage:" - landmarkType = "5"> - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Ash_AWord/Utility/Network/PropertyEntity.h b/Ash_AWord/Utility/Network/PropertyEntity.h index 6466ecc..15985f1 100644 --- a/Ash_AWord/Utility/Network/PropertyEntity.h +++ b/Ash_AWord/Utility/Network/PropertyEntity.h @@ -33,6 +33,7 @@ typedef NS_ENUM(NSUInteger, HTTPRequestType) { @property (nonatomic, assign) HTTPRequestType requireType; @property (nonatomic, copy) NSString *reqURL; @property (nonatomic, copy) NSString *url; +@property (nonatomic, strong)NSString* cacheKey; @property (nonatomic, strong) id pro; @property (nonatomic, assign) Class responesOBJ; @property (nonatomic, strong)DCParserConfiguration* config; diff --git a/Ash_AWord/Utility/Network/RequireEngine.m b/Ash_AWord/Utility/Network/RequireEngine.m index 924dcd0..cebf756 100644 --- a/Ash_AWord/Utility/Network/RequireEngine.m +++ b/Ash_AWord/Utility/Network/RequireEngine.m @@ -24,7 +24,7 @@ NSString *tmpErrCode = func(tweet, selector); DLog(@"%@", tmpErrCode); - if ([tmpErrCode isKindOfClass:[NSString class]] && [tmpErrCode isEqualToString:@"0"]) { + if (([tmpErrCode isKindOfClass:[NSString class]] && [tmpErrCode isEqualToString:@"0"] ) || ([tmpErrCode isKindOfClass:[NSNumber class]] && [tmpErrCode integerValue]==0)) { [[EGOCache globalCache] setObject:tweet forKey:apiKey]; } @@ -39,7 +39,7 @@ + (AFHTTPRequestOperation *)requireWithProperty:(PropertyEntity *)proper completionBlock:(CompletionBlock)completionBlock failedBlock:(FailedBlock)failedBlock{ proper.reqURL = @""; - NSString *apiKey = proper.url; + NSString *apiKey = proper.cacheKey; if (proper.pro && proper.pro[@"page"]) { apiKey = [apiKey stringByAppendingFormat:@"%@",proper.pro[@"page"]]; @@ -114,6 +114,8 @@ return [[XiaoYuAPIClient sharedClient] POST:[proper reqURL] parameters:[proper encodePro] constructingBodyWithBlock:^(id formData) { + + [self responseFromCacheWithAPIKey:apiKey property:proper completionBlock:completionBlock]; if (proper.pFile) { if ([proper.pFile.name isEqualToString:@"img"]) { for (int i = 0; i < proper.pFile.img.count; i++) { diff --git a/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m b/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m index 1b178e7..09645f2 100644 --- a/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m +++ b/Ash_AWord/ViewControllers/Chat/ChatMainViewController.m @@ -111,15 +111,16 @@ [self.view addSubview:_chatToolBar]; + __weak ChatMainViewController* weakSelf = self; #warning 以下三行代码必须写,注册为SDK的ChatManager的delegate - [EMCDDeviceManager sharedInstance].delegate = self; + [EMCDDeviceManager sharedInstance].delegate = weakSelf; [[EaseMob sharedInstance].chatManager removeDelegate:self]; //注册为SDK的ChatManager的delegate - [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil]; + [[EaseMob sharedInstance].chatManager addDelegate:weakSelf delegateQueue:nil]; [[EaseMob sharedInstance].callManager removeDelegate:self]; // 注册为Call的Delegate - [[EaseMob sharedInstance].callManager addDelegate:self delegateQueue:nil]; + [[EaseMob sharedInstance].callManager addDelegate:weakSelf delegateQueue:nil]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyBoardHidden)]; @@ -461,8 +462,9 @@ cell.selectionStyle = UITableViewCellSelectionStyleNone; } cell.messageModel = model; + __weak ChatMainViewController* weakself = self; [cell setDelMessage:^(NSInteger index){ - [self deleteMsgWithIndex:index]; + [weakself deleteMsgWithIndex:index]; }]; cell.tag = indexPath.row; return cell; @@ -1225,6 +1227,8 @@ { _slimeView.delegate = nil; _slimeView = nil; +// [[EaseMob sharedInstance].chatManager removeDelegate:self]; +// [[EaseMob sharedInstance].callManager removeDelegate:self]; } /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/Chat/DXChatBarMoreView.h b/Ash_AWord/ViewControllers/Chat/DXChatBarMoreView.h index a4b47b2..910863d 100644 --- a/Ash_AWord/ViewControllers/Chat/DXChatBarMoreView.h +++ b/Ash_AWord/ViewControllers/Chat/DXChatBarMoreView.h @@ -20,7 +20,7 @@ typedef enum{ @protocol DXChatBarMoreViewDelegate; @interface DXChatBarMoreView : UIView -@property (nonatomic,assign) id delegate; +@property (nonatomic,weak) id delegate; @property (nonatomic, strong) UIButton *photoButton; @property (nonatomic, strong) UIButton *takePicButton; diff --git a/Ash_AWord/ViewControllers/Chat/SlimeRefresh/SRRefreshView.h b/Ash_AWord/ViewControllers/Chat/SlimeRefresh/SRRefreshView.h index f404b44..70608a6 100755 --- a/Ash_AWord/ViewControllers/Chat/SlimeRefresh/SRRefreshView.h +++ b/Ash_AWord/ViewControllers/Chat/SlimeRefresh/SRRefreshView.h @@ -32,7 +32,7 @@ typedef void (^SRRefreshBlock)(SRRefreshView* sender); @property (nonatomic, strong, readonly) UIImageView *refleshView; //select one to receive the refreshing message. @property (nonatomic, copy) SRRefreshBlock block; -@property (nonatomic, assign) id delegate; +@property (nonatomic, weak) id delegate; @property (nonatomic, readonly) UIActivityIndicatorView *activityIndicationView; //default is false, if true when slime go back it will have a alpha effect diff --git a/Ash_AWord/ViewControllers/Main/MainViewController.m b/Ash_AWord/ViewControllers/Main/MainViewController.m index 3826304..7e11f02 100644 --- a/Ash_AWord/ViewControllers/Main/MainViewController.m +++ b/Ash_AWord/ViewControllers/Main/MainViewController.m @@ -81,9 +81,9 @@ static NSString *kMessageType = @"MessageType"; [UIBarButtonItem.appearance setTintColor:[UIColor blackColor]]; [[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; - [[EaseMob sharedInstance].chatManager loadAllConversationsFromDatabaseWithAppend2Chat:YES]; + //聊天用的 //获取未读消息数,此时并没有把self注册为SDK的delegate,读取出的未读数是上次退出程序时的 #warning 把self注册为SDK的delegate diff --git a/Ash_AWord/ViewControllers/Message/MessageCommentViewController.h b/Ash_AWord/ViewControllers/Message/MessageCommentViewController.h index 3063d3f..6dee135 100644 --- a/Ash_AWord/ViewControllers/Message/MessageCommentViewController.h +++ b/Ash_AWord/ViewControllers/Message/MessageCommentViewController.h @@ -16,5 +16,7 @@ @property (weak, nonatomic) IBOutlet NSLayoutConstraint *lineHeight; @property (weak, nonatomic) IBOutlet UIView *lineView; @property (strong, nonatomic)Text_Voice* text_Voice; +@property (assign, nonatomic)NSInteger recordId; + @end diff --git a/Ash_AWord/ViewControllers/Message/MessageCommentViewController.m b/Ash_AWord/ViewControllers/Message/MessageCommentViewController.m index 4348460..e2223df 100644 --- a/Ash_AWord/ViewControllers/Message/MessageCommentViewController.m +++ b/Ash_AWord/ViewControllers/Message/MessageCommentViewController.m @@ -18,13 +18,15 @@ @interface MessageCommentViewController () { MessageTableViewCell* _headView; - CommentTextView* _commentTextView; CommentGoodListCellTableViewCell* _commentGoodListCellTableViewCell; NSInteger _page; NSMutableArray* _commentInfoArr; - BOOL _isFirstLoad; } +@property (nonatomic, assign) NSInteger page; +@property (nonatomic, assign) BOOL isFirstLoad; +@property (nonatomic, weak) CommentTextView* commentTextView; + @end @implementation MessageCommentViewController @@ -47,6 +49,20 @@ self.tableView.dataSource = self; self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; + + + + if (_text_Voice) { + [self initView]; + [self loadData]; + [self requirePraiseUser]; + }else{ + [self loadRecordInfo]; + } + +} +-(void)initView +{ _headView = [Ash_UIUtil instanceXibView:@"MessageTableViewCell"]; [_headView setText_Voice:_text_Voice]; CGFloat height = [MessageTableViewCell heightWith:_text_Voice]; @@ -90,21 +106,38 @@ _commentTextView = [Ash_UIUtil instanceXibView:@"CommentTextView"]; _commentTextView.frame = self.view.frame; _commentTextView.commentType = Voice_Type; - + [_commentTextView setComentComplete:^(){ - _isFirstLoad = NO; - _page = 1; + weakSelf.isFirstLoad = NO; + weakSelf.page = 1; [weakSelf loadData]; }]; [self.view addSubview:_commentTextView]; _commentTextView.recordId = _text_Voice.messageId; _commentTextView.aothourId = _text_Voice.ownerId; [_commentTextView setHidden:YES]; - - - [self loadData]; - [self requirePraiseUser]; - +} +-(void)loadRecordInfo +{ + PropertyEntity* pro = [MessageViewModel requireMessageWithRecordId:_recordId]; + [RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) { + if ([viewModel success]) { + if (_text_Voice) { + _text_Voice = [(MessageViewModel*)viewModel text_voice]; + if (_headView) { + [_headView setText_Voice:_text_Voice]; + } + return ; + } + [self initView]; + [self loadData]; + [self requirePraiseUser]; + } + } failedBlock:^(NSError *error){ + [self initView]; + [self loadData]; + [self requirePraiseUser]; + }]; } -(void)requirePraiseUser { @@ -221,13 +254,15 @@ CommentInfoViewModel* commentInfoViewModel = [_commentInfoArr objectAtIndex:indexPath.row]; commentInfoViewModel.status = 1; cell.ownerId = _text_Voice.ownerId; + __weak MessageCommentViewController* weakself = self; + [cell setCommentWithUid:^(NSString* ownerId){ - [_commentTextView showWithUid:ownerId]; + [weakself.commentTextView showWithUid:ownerId]; }]; [cell setDelCommentSuccess:^(void){ - _isFirstLoad = NO; - _page = 1; - [self loadData]; + weakself.isFirstLoad = NO; + weakself.page = 1; + [weakself loadData]; }]; [cell setCommentInfoViewModel:commentInfoViewModel]; return cell; @@ -245,7 +280,9 @@ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void)dealloc +{ +} /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/My/MessageListViewController.m b/Ash_AWord/ViewControllers/My/MessageListViewController.m index e98dffc..ca83ad0 100644 --- a/Ash_AWord/ViewControllers/My/MessageListViewController.m +++ b/Ash_AWord/ViewControllers/My/MessageListViewController.m @@ -16,6 +16,7 @@ NSMutableArray* _dataArr; NSMutableArray* _userArr; + BOOL _ifRefresh; } @end @@ -31,10 +32,10 @@ self.navigationItem.title = @"消息列表"; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"清空列表" style:UIBarButtonItemStyleDone target:self action:@selector(clearList)]; + _ifRefresh = YES; self.tableView.delegate = self; self.tableView.dataSource = self; [self.tableView reloadData]; - [self.tableView removeFooter]; } - (void)didReceiveMemoryWarning { @@ -45,7 +46,11 @@ { [super viewWillAppear:animated]; - [self headerBeginRefreshing]; + if (_ifRefresh) { + [self.tableView.header beginRefreshing]; + }else{ + [self loadData]; + } } @@ -70,6 +75,7 @@ -(void)headerRereshing { _page=1; + _ifRefresh = YES; [self loadData]; } -(void)footerRereshing @@ -93,6 +99,10 @@ _dataArr = [[NSMutableArray alloc] initWithArray:sorte]; + if (!_ifRefresh) { + [self.tableView reloadData]; + return; + } NSMutableArray* uidArr = [NSMutableArray array]; for (EMConversation* conversation in _dataArr) { [uidArr addObject:conversation.chatter]; @@ -102,19 +112,20 @@ if ([viewModel success]) { _userArr = [NSMutableArray arrayWithArray:[(UserViewModel*)viewModel userBaseInfoArr]]; + _ifRefresh = NO; }else{ [_dataArr removeAllObjects]; // [MBProgressHUD errorHudWithView:self.view label:[viewModel errMessage] hidesAfter:1.0]; } [self.tableView reloadData]; - [self.tableView.header endRefreshing]; + [self headerEndRefreshing]; } failedBlock:^(NSError *error) { [MBProgressHUD errorHudWithView:self.view label:kNetworkErrorTips hidesAfter:1.0]; [_dataArr removeAllObjects]; [self.tableView reloadData]; - [self.tableView.header endRefreshing]; + [self headerEndRefreshing]; }]; } @@ -204,7 +215,6 @@ } } - [self.navigationController pushViewController:chatMainViewController animated:YES]; } diff --git a/Ash_AWord/ViewControllers/My/MessageSetViewController.h b/Ash_AWord/ViewControllers/My/MessageSetViewController.h new file mode 100644 index 0000000..22a5703 --- /dev/null +++ b/Ash_AWord/ViewControllers/My/MessageSetViewController.h @@ -0,0 +1,13 @@ +// +// MessageSetViewController.h +// Ash_AWord +// +// Created by xmfish on 15/6/28. +// Copyright (c) 2015年 ash. All rights reserved. +// + +#import "ViewController.h" + +@interface MessageSetViewController : ViewController + +@end diff --git a/Ash_AWord/ViewControllers/My/MessageSetViewController.m b/Ash_AWord/ViewControllers/My/MessageSetViewController.m new file mode 100644 index 0000000..ec4d135 --- /dev/null +++ b/Ash_AWord/ViewControllers/My/MessageSetViewController.m @@ -0,0 +1,37 @@ +// +// MessageSetViewController.m +// Ash_AWord +// +// Created by xmfish on 15/6/28. +// Copyright (c) 2015年 ash. All rights reserved. +// + +#import "MessageSetViewController.h" + +@interface MessageSetViewController () + +@end + +@implementation MessageSetViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/Ash_AWord/ViewControllers/My/MessageSetViewController.xib b/Ash_AWord/ViewControllers/My/MessageSetViewController.xib new file mode 100644 index 0000000..a95e8de --- /dev/null +++ b/Ash_AWord/ViewControllers/My/MessageSetViewController.xib @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Ash_AWord/ViewControllers/My/MyMessageViewController.m b/Ash_AWord/ViewControllers/My/MyMessageViewController.m index 9abfc3a..5e05e5c 100644 --- a/Ash_AWord/ViewControllers/My/MyMessageViewController.m +++ b/Ash_AWord/ViewControllers/My/MyMessageViewController.m @@ -282,7 +282,10 @@ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void)dealloc +{ + +} /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/My/MyNoteViewController.m b/Ash_AWord/ViewControllers/My/MyNoteViewController.m index b523cff..039ad55 100644 --- a/Ash_AWord/ViewControllers/My/MyNoteViewController.m +++ b/Ash_AWord/ViewControllers/My/MyNoteViewController.m @@ -268,7 +268,10 @@ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void)dealloc +{ + +} /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/My/MyRelateViewController.m b/Ash_AWord/ViewControllers/My/MyRelateViewController.m index fcdbbfc..3700f0c 100644 --- a/Ash_AWord/ViewControllers/My/MyRelateViewController.m +++ b/Ash_AWord/ViewControllers/My/MyRelateViewController.m @@ -131,8 +131,10 @@ } CommentInfoViewModel* commentInfoViewModel = [_commentInfoArr objectAtIndex:indexPath.row]; cell.isAllowReport = NO; + + __weak MyRelateViewController* weakself = self; [cell setCommentWithUid:^(NSString* uid){ - [self tableView:tableView didSelectRowAtIndexPath:indexPath]; + [weakself tableView:tableView didSelectRowAtIndexPath:indexPath]; }]; [cell setCommentInfoViewModel:commentInfoViewModel]; return cell; @@ -142,16 +144,49 @@ { [tableView deselectRowAtIndexPath:indexPath animated:YES]; CommentInfoViewModel* commentInfoViewModel = [_commentInfoArr objectAtIndex:indexPath.row]; + + [RequireEngine requireWithProperty:[CommentViewModel requireReadCommentWithCommentId:commentInfoViewModel.commentId.integerValue] completionBlock:^(id viewModel) { + commentInfoViewModel.status = 1; + [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; + } failedBlock:nil]; if (commentInfoViewModel.commentType == Image_Type) { NoteCommentViewController* noteCommentViewController = [[NoteCommentViewController alloc] init]; noteCommentViewController.hidesBottomBarWhenPushed = YES; -// noteCommentViewController.text_image = _text_image; + noteCommentViewController.recordId = commentInfoViewModel.recordId; [self.navigationController pushViewController:noteCommentViewController animated:YES]; }else{ + MessageCommentViewController* messageCommentViewController = [[MessageCommentViewController alloc] init]; + messageCommentViewController.hidesBottomBarWhenPushed = YES; + messageCommentViewController.recordId = commentInfoViewModel.recordId; + [self.navigationController pushViewController:messageCommentViewController animated:YES]; + } +} +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{ + CommentInfoViewModel* commentInfoViewModel = [_commentInfoArr objectAtIndex:indexPath.row]; + if ([commentInfoViewModel.ownerId isEqualToString:[AWordUser sharedInstance].uid]) { + return YES; + } + return NO; +} +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + + if (editingStyle == UITableViewCellEditingStyleDelete) { + + CommentInfoViewModel* commentInfoViewModel = [_commentInfoArr objectAtIndex:indexPath.row]; + [RequireEngine requireWithProperty:[CommentViewModel requireDelCommentWithCommentId:commentInfoViewModel.commentId.integerValue] completionBlock:^(id viewModel) { + commentInfoViewModel.status = 1; + [_commentInfoArr removeObjectAtIndex:indexPath.row]; + [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; + } failedBlock:nil]; } } +-(void)dealloc +{ + +} + - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. diff --git a/Ash_AWord/ViewControllers/My/PersonalInfoViewController.m b/Ash_AWord/ViewControllers/My/PersonalInfoViewController.m index 82bf4a4..e0d223c 100644 --- a/Ash_AWord/ViewControllers/My/PersonalInfoViewController.m +++ b/Ash_AWord/ViewControllers/My/PersonalInfoViewController.m @@ -21,14 +21,16 @@ CExpandHeader *_header; PersonalTopView* _personalTopView; UserViewModel* _userViewModel; - NSMutableArray* _imageArr; - NSMutableArray* _voiceArr; - BOOL _isSelectImage; + NSInteger _imagePage; NSInteger _voicePage; NSInteger _playIndex; } +@property(nonatomic, strong) NSMutableArray* imageArr; +@property(nonatomic, strong) NSMutableArray* voiceArr; +@property(nonatomic, assign)BOOL isSelectImage; + @end @implementation PersonalInfoViewController @@ -77,15 +79,15 @@ [_personalTopView.headBtn addTarget:self action:@selector(selectHeadImage:) forControlEvents:UIControlEventTouchUpInside]; } [_personalTopView setIsSelectImg:^(BOOL isSelectImg){ - _isSelectImage = isSelectImg; + weakself.isSelectImage = isSelectImg; if (isSelectImg) { - if (_imageArr.count <= 0) { + if (weakself.imageArr.count <= 0) { [weakself loadData]; }else{ [weakself.tableView reloadData]; } }else{ - if (_voiceArr.count <= 0) { + if (weakself.voiceArr.count <= 0) { [weakself loadData]; }else{ [weakself.tableView reloadData]; @@ -388,7 +390,10 @@ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void)dealloc +{ + +} /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/My/SetUpViewController.m b/Ash_AWord/ViewControllers/My/SetUpViewController.m index 6db4615..296496c 100644 --- a/Ash_AWord/ViewControllers/My/SetUpViewController.m +++ b/Ash_AWord/ViewControllers/My/SetUpViewController.m @@ -31,10 +31,13 @@ #pragma mark UITableViewDelegate -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; + return 2; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + return 1; + } if([AWordUser sharedInstance].isLogin && [AWordUser sharedInstance].loginType==1) return 8; return 6; @@ -49,11 +52,14 @@ } -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + if (section == 0 ) { + return 10.0; + } return 100.0; } -(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { - if (![AWordUser sharedInstance].isLogin) { + if (![AWordUser sharedInstance].isLogin || section == 0) { return nil; } UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 100)]; @@ -76,6 +82,13 @@ if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier]; } + cell.accessoryType = UITableViewCellAccessoryNone; + if (indexPath.section == 0) { + cell.textLabel.text = @"消息设置"; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + + }else + { switch (indexPath.row) { case 0: { @@ -93,6 +106,7 @@ break; case 1: cell.textLabel.text = @"推荐给朋友"; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; break; case 2: { @@ -106,25 +120,36 @@ break; case 3: cell.textLabel.text = @"关于我们"; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + break; case 4: cell.textLabel.text = @"欢迎打5星好评"; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + break; case 5: cell.textLabel.text = @"服务条款"; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + break; case 6: cell.textLabel.text = @"意见反馈"; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + break; case 7: cell.textLabel.text = @"密码修改"; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + break; default: break; } + } return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath @@ -301,7 +326,10 @@ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void)dealloc +{ + +} /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/My/SetUserInfoViewController.m b/Ash_AWord/ViewControllers/My/SetUserInfoViewController.m index 4121aad..ecac99e 100644 --- a/Ash_AWord/ViewControllers/My/SetUserInfoViewController.m +++ b/Ash_AWord/ViewControllers/My/SetUserInfoViewController.m @@ -242,7 +242,10 @@ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void)dealloc +{ + +} /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/Note/NoteCommentViewController.h b/Ash_AWord/ViewControllers/Note/NoteCommentViewController.h index bd15f67..7d5e728 100644 --- a/Ash_AWord/ViewControllers/Note/NoteCommentViewController.h +++ b/Ash_AWord/ViewControllers/Note/NoteCommentViewController.h @@ -17,5 +17,6 @@ @property (weak, nonatomic) IBOutlet NSLayoutConstraint *lineHeight; @property (weak, nonatomic) IBOutlet UIButton *commentBtn; @property (strong, nonatomic)Text_Image* text_image; +@property (assign, nonatomic)NSInteger recordId; @end diff --git a/Ash_AWord/ViewControllers/Note/NoteCommentViewController.m b/Ash_AWord/ViewControllers/Note/NoteCommentViewController.m index bc3f554..dc9f881 100644 --- a/Ash_AWord/ViewControllers/Note/NoteCommentViewController.m +++ b/Ash_AWord/ViewControllers/Note/NoteCommentViewController.m @@ -19,13 +19,13 @@ @interface NoteCommentViewController () { NoteTableViewCell* _headView; - CommentTextView* _commentTextView; CommentGoodListCellTableViewCell* _commentGoodListCellTableViewCell; - NSInteger _page; NSMutableArray* _commentInfoArr; - BOOL _isFirstLoad; NSInteger _reportIndex; } +@property (nonatomic, assign) NSInteger page; +@property (nonatomic, assign) BOOL isFirstLoad; +@property (nonatomic, weak) CommentTextView* commentTextView; @end @implementation NoteCommentViewController @@ -44,6 +44,21 @@ self.tableView.dataSource = self; self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; + + if (_text_image) { + [self initView]; + [self loadData]; + [self requirePraiseUser]; + }else{ + [self loadRecordInfo]; + } + + + +} + +-(void)initView +{ _headView = [Ash_UIUtil instanceXibView:@"NoteTableViewCell"]; [_headView setText_Image:_text_image]; CGFloat height = [NoteTableViewCell heightWith:_text_image]; @@ -63,7 +78,7 @@ praiseUserListViewController.userListType = UserList_Praise_Type; praiseUserListViewController.commentType = Image_Type; [weakSelf.navigationController pushViewController:praiseUserListViewController animated:YES]; - } + } ]; [tableHeadView addSubview:_commentGoodListCellTableViewCell]; @@ -87,25 +102,39 @@ _commentTextView.frame = self.view.frame; _commentTextView.commentType = Image_Type; [_commentTextView setComentComplete:^(){ - _isFirstLoad = NO; - _page = 1; + weakSelf.isFirstLoad = NO; + weakSelf.page = 1; [weakSelf loadData]; - }]; + }]; [self.view addSubview:_commentTextView]; _commentTextView.recordId = _text_image.messageId; _commentTextView.aothourId = _text_image.ownerId; [_commentTextView setHidden:YES]; - - - - - [self loadData]; - [self requirePraiseUser]; } - - - +-(void)loadRecordInfo +{ + PropertyEntity* pro = [NoteViewModel requireNoteWithRecordId:_recordId]; + [RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) { + if ([viewModel success]) { + if (_text_image) { + _text_image = [(NoteViewModel*)viewModel text_image]; + if (_headView) { + [_headView setText_Image:_text_image]; + } + return ; + } + _text_image = [(NoteViewModel*)viewModel text_image]; + [self initView]; + [self loadData]; + [self requirePraiseUser]; + } + } failedBlock:^(NSError *error){ + [self initView]; + [self loadData]; + [self requirePraiseUser]; + }]; +} -(void)requirePraiseUser { PropertyEntity* pro = [UserViewModel requireLoadPraiseUserWithRecordId:_text_image.messageId withPage:1 withPage_size:10 withType:Image_Type]; @@ -220,13 +249,16 @@ cell.commentType = Image_Type; CommentInfoViewModel* commentInfoViewModel = [_commentInfoArr objectAtIndex:indexPath.row]; cell.ownerId = _text_image.ownerId; + commentInfoViewModel.status = 1; + __weak NoteCommentViewController* weakself = self; + [cell setCommentWithUid:^(NSString* ownerId){ - [_commentTextView showWithUid:ownerId]; + [weakself.commentTextView showWithUid:ownerId]; }]; [cell setDelCommentSuccess:^(void){ - _isFirstLoad = NO; - _page = 1; - [self loadData]; + weakself.isFirstLoad = NO; + weakself.page = 1; + [weakself loadData]; }]; [cell setCommentInfoViewModel:commentInfoViewModel]; return cell; @@ -243,7 +275,10 @@ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - +-(void)dealloc +{ + +} /* #pragma mark - Navigation diff --git a/Ash_AWord/ViewControllers/User/PraiseUserListViewController.m b/Ash_AWord/ViewControllers/User/PraiseUserListViewController.m index 2767119..3005699 100644 --- a/Ash_AWord/ViewControllers/User/PraiseUserListViewController.m +++ b/Ash_AWord/ViewControllers/User/PraiseUserListViewController.m @@ -14,6 +14,8 @@ { NSInteger _page; NSMutableArray* _dataArr; + NSMutableArray* _newArr; //新关注的用户 + BOOL _isShowNewFans; //代表是否有显示新粉丝 } @end @@ -22,11 +24,14 @@ - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. - + _isShowNewFans = NO; self.navigationItem.title = @"最近点赞"; if (_userListType == UserList_Attention_Type) { self.navigationItem.title = @"关注"; }else if(_userListType == UserList_Fans_Type){ + if ([_targetId isEqualToString:[AWordUser sharedInstance].uid] && [AWordUser sharedInstance].myNewFollowerCount>0) { + _isShowNewFans = YES; + } self.navigationItem.title = @"粉丝"; } self.tableView.delegate = self; @@ -34,6 +39,7 @@ _page = 1; _dataArr = [[NSMutableArray alloc] init]; + _newArr = [[NSMutableArray alloc] init]; if (_firstPraiseUserArr.count > 0) { [_dataArr addObjectsFromArray:_firstPraiseUserArr]; if (_dataArr.count >= DefaultPageSize) { @@ -41,7 +47,7 @@ } }else { - [self headerBeginRefreshing]; + [self loadNewUserList]; } } @@ -52,7 +58,31 @@ } +-(void)loadNewUserList +{ + if (!_isShowNewFans) { + [self headerBeginRefreshing]; + return; + } + [self.tableView.header beginRefreshing]; + PropertyEntity* pro = [UserViewModel requireNewUserList]; + [RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) { + if ([viewModel success]) { + UserViewModel* userViewModel = (UserViewModel*)viewModel; + + if (userViewModel.userInfoArr) { + [_newArr addObjectsFromArray:userViewModel.userInfoArr]; + } + + } + [self headerRereshing]; + + } failedBlock:^(NSError *error) { + [self headerRereshing]; + }]; + +} #pragma mark MJRefreshDelegate -(void)headerRereshing { @@ -110,11 +140,17 @@ #pragma mark UITableViewDelegate -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + if (_newArr.count>0) { + return 2; + } return 1; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (_newArr.count>0 && section==0) { + return _newArr.count; + } return _dataArr.count; } @@ -127,8 +163,20 @@ -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (_newArr.count>0) { + return 30.0; + } return 10.0; } +-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section +{ + if (section==0 && _newArr.count>0) { + return @"新粉丝"; + }else if(section==1){ + return @"全部粉丝"; + } + return @""; +} -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { return 0.01; @@ -144,7 +192,13 @@ cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; } - UserInfoViewModel* userInfoViewModel = [_dataArr objectAtIndex:indexPath.row]; + UserInfoViewModel* userInfoViewModel; + if (indexPath.section==0 && _newArr.count>0) { + userInfoViewModel = [_newArr objectAtIndex:indexPath.row]; + }else{ + userInfoViewModel = [_dataArr objectAtIndex:indexPath.row]; + + } [cell setUserInfoViewModel:userInfoViewModel]; return cell; @@ -153,7 +207,13 @@ -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; - UserInfoViewModel* userInfoViewModel = [_dataArr objectAtIndex:indexPath.row]; + UserInfoViewModel* userInfoViewModel; + if (indexPath.section==0 && _newArr.count>0) { + userInfoViewModel = [_newArr objectAtIndex:indexPath.row]; + }else{ + userInfoViewModel = [_dataArr objectAtIndex:indexPath.row]; + + } PersonalInfoViewController* personalInfoViewController = [[PersonalInfoViewController alloc] init]; personalInfoViewController.hidesBottomBarWhenPushed = YES; personalInfoViewController.otherUserId = userInfoViewModel.uid; diff --git a/Ash_AWord/ViewModels/Common/CommentViewModel.h b/Ash_AWord/ViewModels/Common/CommentViewModel.h index 37adcf7..49fc597 100644 --- a/Ash_AWord/ViewModels/Common/CommentViewModel.h +++ b/Ash_AWord/ViewModels/Common/CommentViewModel.h @@ -19,6 +19,7 @@ @property (nonatomic, strong) NSString *toUserName; @property (nonatomic, assign) NSInteger status;//状态。0:未读,1:已读 @property (nonatomic, assign) CommentType commentType; +@property (nonatomic, assign) NSInteger recordId; @end @interface CommentViewModel : BaseViewModel @@ -30,4 +31,5 @@ +(PropertyEntity*)requireLoadCommentWithRecordId:(NSInteger)recordId withPage:(NSInteger)page withPage_size:(NSInteger)page_size WithType:(CommentType)commentType; +(PropertyEntity*)requireLoadMyCommentWithPage:(NSInteger)page withPage_size:(NSInteger)page_size; ++(PropertyEntity*)requireReadCommentWithCommentId:(NSInteger)commentId; @end diff --git a/Ash_AWord/ViewModels/Common/CommentViewModel.m b/Ash_AWord/ViewModels/Common/CommentViewModel.m index 2c88691..4da15bd 100644 --- a/Ash_AWord/ViewModels/Common/CommentViewModel.m +++ b/Ash_AWord/ViewModels/Common/CommentViewModel.m @@ -21,6 +21,7 @@ @"toUserId":@"toUserId", @"toUserName":@"toUserName", @"status" : @"status", + @"recordId":@"recordId", }; } @end @@ -97,4 +98,17 @@ }; return pro; } ++(PropertyEntity*)requireReadCommentWithCommentId:(NSInteger)commentId +{ + PropertyEntity *pro = [[PropertyEntity alloc] init]; + pro.requireType = HTTPRequestTypeWithPOSTDATA; + pro.responesOBJ = self.class; + NSDictionary* dic = @{ + @"commentId": [NSString stringWithFormat:@"%ld",commentId], + }; + pro.pro = @{@"root": dic, + @"command": @"10205", + }; + return pro; +} @end diff --git a/Ash_AWord/ViewModels/Common/UserViewModel.h b/Ash_AWord/ViewModels/Common/UserViewModel.h index 277e927..53f6d13 100644 --- a/Ash_AWord/ViewModels/Common/UserViewModel.h +++ b/Ash_AWord/ViewModels/Common/UserViewModel.h @@ -38,4 +38,6 @@ +(PropertyEntity*)requireAttentionWithTargetUid:(NSString*)targetUid withIsAttention:(BOOL)isAttention; +(PropertyEntity*)requireUserListWithUid:(NSArray*)uidArr; + ++(PropertyEntity*)requireNewUserList; @end diff --git a/Ash_AWord/ViewModels/Common/UserViewModel.m b/Ash_AWord/ViewModels/Common/UserViewModel.m index c25a7ef..6f710f6 100644 --- a/Ash_AWord/ViewModels/Common/UserViewModel.m +++ b/Ash_AWord/ViewModels/Common/UserViewModel.m @@ -119,7 +119,24 @@ }; return pro; } ++(PropertyEntity*)requireNewUserList +{ + PropertyEntity *pro = [[PropertyEntity alloc] init]; + pro.requireType = HTTPRequestTypeWithPOSTDATA; + pro.responesOBJ = self.class; + + + NSDictionary* dic = @{ + @"page": [NSString stringWithFormat:@"%d",1], + @"pageSize": [NSString stringWithFormat:@"%d",100], + }; + NSString* command = @"10106"; + pro.pro = @{@"root": dic, + @"command": command, + }; + return pro; +} +(PropertyEntity*)requireUserListWithUid:(NSArray *)uidArr { PropertyEntity *pro = [[PropertyEntity alloc] init]; diff --git a/Ash_AWord/ViewModels/Message/MessageViewModel.h b/Ash_AWord/ViewModels/Message/MessageViewModel.h index b88637a..51eee29 100644 --- a/Ash_AWord/ViewModels/Message/MessageViewModel.h +++ b/Ash_AWord/ViewModels/Message/MessageViewModel.h @@ -30,6 +30,8 @@ @property (nonatomic, strong)NSArray* text_voicesArr; +@property (nonatomic, strong)Text_Voice *text_voice; + +(PropertyEntity*)requireWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size; +(PropertyEntity*)requireMyWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size; @@ -41,4 +43,6 @@ +(PropertyEntity*)requireDelWithRecordId:(NSInteger)recordId; ++(PropertyEntity*)requireMessageWithRecordId:(NSInteger)recordId; + @end diff --git a/Ash_AWord/ViewModels/Message/MessageViewModel.m b/Ash_AWord/ViewModels/Message/MessageViewModel.m index 613f905..c2ad3ee 100644 --- a/Ash_AWord/ViewModels/Message/MessageViewModel.m +++ b/Ash_AWord/ViewModels/Message/MessageViewModel.m @@ -46,6 +46,8 @@ + (NSDictionary *)JSONKeyPathsByPropertyKey { NSMutableDictionary* dic = [NSMutableDictionary dictionaryWithDictionary:[super JSONKeyPathsByPropertyKey]]; [dic setObject:@"text_voices" forKey:@"text_voicesArr"]; + [dic setObject:@"text_voice" forKey:@"text_voice"]; + return dic; } - (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error { @@ -57,7 +59,9 @@ + (NSValueTransformer *)text_voicesArrJSONTransformer{ return [NSValueTransformer mtl_JSONArrayTransformerWithModelClass:Text_Voice.class]; } - ++ (NSValueTransformer *)text_voiceJSONTransformer{ + return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:Text_Voice.class]; +} +(PropertyEntity*)requireWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size { PropertyEntity *pro = [[PropertyEntity alloc] init]; @@ -151,4 +155,21 @@ return pro; } ++(PropertyEntity*)requireMessageWithRecordId:(NSInteger)recordId +{ + PropertyEntity *pro = [[PropertyEntity alloc] init]; + pro.requireType = HTTPRequestTypeWithPOSTDATA; + pro.responesOBJ = self.class; + pro.isCache = YES; + pro.cacheKey = [NSString stringWithFormat:@"30010-%ld",recordId]; + NSDictionary* dic = @{ + @"recordId": [NSString stringWithFormat:@"%ld",recordId], + + }; + pro.pro = @{@"root": dic, + @"command": @"30010", + }; + + return pro; +} @end diff --git a/Ash_AWord/ViewModels/Note/NoteViewModel.h b/Ash_AWord/ViewModels/Note/NoteViewModel.h index 4402502..6c15b29 100644 --- a/Ash_AWord/ViewModels/Note/NoteViewModel.h +++ b/Ash_AWord/ViewModels/Note/NoteViewModel.h @@ -28,11 +28,13 @@ @interface NoteViewModel : BaseViewModel @property (nonatomic, strong)NSArray* text_imagesArr; +@property (nonatomic, strong)Text_Image* text_image; +(PropertyEntity*)requireWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size; +(PropertyEntity*)requireMyWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size; +(PropertyEntity*)requireOhterWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size withOtherId:(NSString*)otherid; ++(PropertyEntity*)requireNoteWithRecordId:(NSInteger)recordId; +(PropertyEntity*)requirePraiseWithRecordId:(NSInteger)recordId; +(PropertyEntity*)requireShareWithRecordId:(NSInteger)recordId; diff --git a/Ash_AWord/ViewModels/Note/NoteViewModel.m b/Ash_AWord/ViewModels/Note/NoteViewModel.m index 335c632..5ff462b 100644 --- a/Ash_AWord/ViewModels/Note/NoteViewModel.m +++ b/Ash_AWord/ViewModels/Note/NoteViewModel.m @@ -47,6 +47,7 @@ + (NSDictionary *)JSONKeyPathsByPropertyKey { NSMutableDictionary* dic = [NSMutableDictionary dictionaryWithDictionary:[super JSONKeyPathsByPropertyKey]]; [dic setObject:@"text_images" forKey:@"text_imagesArr"]; + [dic setObject:@"text_image" forKey:@"text_image"]; return dic; } - (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error { @@ -59,6 +60,10 @@ return [NSValueTransformer mtl_JSONArrayTransformerWithModelClass:Text_Image.class]; } ++ (NSValueTransformer *)text_imageJSONTransformer{ + return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:Text_Image.class]; +} + +(PropertyEntity*)requireWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size { PropertyEntity *pro = [[PropertyEntity alloc] init]; @@ -106,6 +111,8 @@ }; return pro; } + + +(PropertyEntity*)requirePraiseWithRecordId:(NSInteger)recordId { PropertyEntity *pro = [[PropertyEntity alloc] init]; @@ -152,5 +159,21 @@ return pro; } ++(PropertyEntity*)requireNoteWithRecordId:(NSInteger)recordId +{ + PropertyEntity *pro = [[PropertyEntity alloc] init]; + pro.requireType = HTTPRequestTypeWithPOSTDATA; + pro.responesOBJ = self.class; + pro.isCache = YES; + pro.cacheKey = [NSString stringWithFormat:@"20010-%ld",recordId]; + NSDictionary* dic = @{ + @"recordId": [NSString stringWithFormat:@"%ld",recordId], + + }; + pro.pro = @{@"root": dic, + @"command": @"20010", + }; + return pro; +} @end diff --git a/Ash_AWord/Views/Common/CommentTableViewCell.m b/Ash_AWord/Views/Common/CommentTableViewCell.m index d42d8a6..987b284 100644 --- a/Ash_AWord/Views/Common/CommentTableViewCell.m +++ b/Ash_AWord/Views/Common/CommentTableViewCell.m @@ -29,6 +29,11 @@ _isNewLabel.layer.cornerRadius = 5.0; _isNewView.hidden = YES; + _isNewView.layer.cornerRadius = 5.0; + _isNewView.backgroundColor = [UIColor appMainColor]; + _isNewView.layer.masksToBounds = YES; + _isNewView.image = nil; + _isAllowReport = YES; _contentTextView.textDelegate = self; @@ -72,7 +77,11 @@ }else{ [self setIsAuthor:NO]; } - _isNewView.hidden = !commentInfoViewModel.status; + if (commentInfoViewModel.status == 0) { + _isNewView.hidden = NO; + }else{ + _isNewView.hidden = YES; + } NSString* content = commentInfoViewModel.content; if (![commentInfoViewModel.toUserId isEqualToString:_ownerId]){ content = [CommentTableViewCell getContentWithCommentInfoViewModel:commentInfoViewModel]; diff --git a/Ash_AWord/Views/Common/CommentTableViewCell.xib b/Ash_AWord/Views/Common/CommentTableViewCell.xib index 86d30ac..073ae5a 100644 --- a/Ash_AWord/Views/Common/CommentTableViewCell.xib +++ b/Ash_AWord/Views/Common/CommentTableViewCell.xib @@ -40,13 +40,6 @@ - - - - - - - @@ -60,6 +53,13 @@ + + + + + + + @@ -76,11 +76,14 @@ + + + @@ -89,11 +92,14 @@ + + +