澎湃iPad上线版本

ImageListViewModel.m 8.8KB

    // // ImageListViewModel.m // ThePaperHD // // Created by scar1900 on 15/6/30. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "ImageListViewModel.h" #import "AsyncImageScrollView.h" #define getImageSetTag 100 #define getCommentInfoTag 101 #define getAskInfoTag 102 #define COLLECTTAG 1002 #define CANCELCOLLECTTAG 1003 @interface ImageListViewModel()<RemoteDelegate> @property(nonatomic, strong)contentObjectBO *contentBO; @end @implementation ImageListViewModel @synthesize nodeID; @synthesize contentBO = _contentBO; @synthesize delegate; - (instancetype)init { self = [super init]; if (self) { } return self; } #pragma mark - set and get method - (void)setContentBO:(contentObjectBO *)contentData{ if (!contentData) { TPLOG(@"返回数据有误!"); return; } NSMutableArray* contentImageList = [NSMutableArray array]; _contentBO = contentData; NSArray *images = contentData.images; [images enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { imageObjectBO *imageBO = setJsonDicToDataModel(obj, [imageObjectBO class]); [contentImageList addObject:imageBO]; }]; if ([self.delegate respondsToSelector:@selector(returnImageBOList:cotentBO:)]) { [self.delegate returnImageBOList:contentImageList cotentBO:contentData]; } } #pragma mark - public method && private method - (void)remoteAction { NSDictionary *dic = @{@"c":self.nodeID}; [Remote doJsonAction:getImageSetTag requestUrl:getImageSetURL parameter:dic delegate:self]; [Remote doJsonAction:getCommentInfoTag requestUrl:contentCommentURL parameter:dic delegate:self]; [Remote doJsonAction:getAskInfoTag requestUrl:contentAskURL parameter:dic delegate:self]; } - (void)saveImage:(AsyncImageScrollView*)asyImageView { if (!asyImageView.gifData) { if (!asyImageView.imageView.image) { ShowTextMessage(@"图片尚未下载完成"); return; } UIImageWriteToSavedPhotosAlbum(asyImageView.imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); }else { UIImage *gifImage = [UIImage imageWithData:asyImageView.gifData]; if (!gifImage) { ShowTextMessage(@"图片尚未下载完成"); return; } UIImageWriteToSavedPhotosAlbum(gifImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); } } - (void)collectContent{ if (!self.contentBO) { return; } NSDictionary *dic = @{@"cids":self.contentBO.contId}; [Remote doJsonAction:COLLECTTAG requestUrl:addFavoriteURL parameter:dic delegate:self]; } - (void)cancelCollect { if (!self.contentBO) { return; } NSDictionary *dic = @{@"cids":self.contentBO.contId}; [Remote doJsonAction:CANCELCOLLECTTAG requestUrl:deleteFavoriteURL parameter:dic delegate:self]; } #pragma mark - remote delegate - (void)startWaitCursor:(int)actionTag { } - (void)stopWaitCursor:(int)actionTag { } - (void)remoteResponsSuccess:(int)actionTag withResponsData:(id)responsData { if (actionTag == getImageSetTag) { //主数据源 NSArray *hotImages = responsData[@"recommendConts"]; NSMutableArray *hotImageList = [NSMutableArray array]; [hotImages enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { listContObjectVO *listBO = setJsonDicToDataModel(obj, [listContObjectVO class]); [hotImageList addObject:listBO]; }]; if ([self.delegate respondsToSelector:@selector(returnHotImageList:)]) { [self.delegate returnHotImageList:hotImageList]; } contentObjectBO* content = setJsonDicToDataModel(responsData[@"content"], [contentObjectBO class]); self.contentBO = content; }else if (actionTag == getCommentInfoTag) {//评论 NSMutableArray* commentList = [NSMutableArray array]; NSMutableArray *hotList = [NSMutableArray array]; NSArray *list = responsData[@"commentList"]; NSArray *hotDicList = responsData[@"hotList"]; [list enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL *stop) { commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]); commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO); [commentList addObject:commentBO]; }]; [hotDicList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]); commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO); [hotList addObject:commentBO]; }]; NSMutableArray *commentDataList = [NSMutableArray array]; if (hotList.count > 0) { [commentDataList addObject:hotList]; } [commentDataList addObject:commentList]; if ([self.delegate respondsToSelector:@selector(returnCommentList:nodeId:nextUrl:commentTotalRecord:)]) { NSMutableArray *array = [NSMutableArray array]; // if (isPad) { // array = [NSMutableArray arrayWithArray:commentList]; // }else { array = [NSMutableArray arrayWithArray:commentDataList]; // } [self.delegate returnCommentList:array nodeId:self.nodeID nextUrl:responsData[@"nextUrl"] commentTotalRecord:[responsData[@"recordTotal"] integerValue]]; } }else if (actionTag == getAskInfoTag) {//热追问 NSMutableDictionary *qaDataDic = [NSMutableDictionary dictionary]; NSArray *hotQaList = responsData[@"hotQaList"]; NSMutableArray *hotQaArray = [NSMutableArray array]; [hotQaList enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL *stop) { commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]); commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO); [hotQaArray addObject:commentBO]; }]; [qaDataDic setValue:hotQaArray forKey:@"hotQaList"]; NSArray *qaTempList = responsData[@"qaList"]; NSMutableArray *qaArray = [NSMutableArray array]; [qaTempList enumerateObjectsUsingBlock:^(NSDictionary* obj, NSUInteger idx, BOOL *stop) { commentObjectVO *commentBO = setJsonDicToDataModel(obj, [commentObjectVO class]); commentBO = setStrSpaceForParagraphSpacingWithCommentBO(commentBO); [qaArray addObject:commentBO]; }]; [qaDataDic setValue:qaArray forKey:@"qaList"]; if ([self.delegate respondsToSelector:@selector(returnHotAskDic:nodeId:nextUrl:askTotalRecord:)]) { [self.delegate returnHotAskDic:qaDataDic nodeId:self.nodeID nextUrl:responsData[@"nextUrl"] askTotalRecord:[responsData[@"qaNum"] integerValue]]; } }else if (actionTag == COLLECTTAG) { ShowMessage(@"收藏成功", YES); if ([self.delegate respondsToSelector:@selector(collectResult:)]) { [self.delegate collectResult:YES]; } }else if (actionTag == CANCELCOLLECTTAG) { ShowMessage(@"取消收藏", YES); if ([self.delegate respondsToSelector:@selector(collectResult:)]) { [self.delegate collectResult:NO]; } } } - (void)remoteResponsFailed:(int)actionTag withMessage:(NSString *)message resultCode:(NSString *)code { if ([code intValue] == 5) { if ([self.delegate respondsToSelector:@selector(contentHaveOffline)]) { [self.delegate contentHaveOffline]; } }else { BOOL isTimeOut = NO; //【需求】无网络处理优化(重新加载打底图(bug:5953) if ([message isEqualToString:noNetworkMessage] || [message isEqualToString:@"请求超时,请稍后重试!"]) { isTimeOut = YES; }else { ShowTextMessage(message); } if ([self.delegate respondsToSelector:@selector(remoteFail:)]) { [self.delegate remoteFail:isTimeOut]; } } } - (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo { NSString *msg = nil ; if(error != NULL){ msg = @"保存图片失败" ; }else{ msg = @"已保存至相册" ; } ShowTextMessage(msg); } @end