From 4c1abca185a5727da6fb314a0cb4cd44bfe1b3bf Mon Sep 17 00:00:00 2001 From: Davin <591807572@qq.com> Date: 星期五, 07 六月 2024 17:48:47 +0800 Subject: [PATCH] feature appkey修改 --- EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZDeviceMsgListViewController.m | 155 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 148 insertions(+), 7 deletions(-) diff --git a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZDeviceMsgListViewController.m b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZDeviceMsgListViewController.m index 0c1ca3e..b4eb890 100644 --- a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZDeviceMsgListViewController.m +++ b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZDeviceMsgListViewController.m @@ -10,7 +10,10 @@ #import "MJRefreshNormalHeader.h" #import "MJRefreshAutoNormalFooter.h" #import "HDLEZDevMsgListModel.h" -@interface HDLEZDeviceMsgListViewController () +#import "MWPhotoBrowser.h" +#import "SDWebImageManager.h" +#import <Photos/Photos.h> +@interface HDLEZDeviceMsgListViewController ()<MWPhotoBrowserDelegate> @property (nonatomic, strong) HDLEZDeviceMsgListView *msgListV;//娑堟伅鍒楄〃view @property (nonatomic, strong) MJRefreshNormalHeader *header;//鍒锋柊header @@ -25,6 +28,9 @@ @property (nonatomic, assign) NSInteger pageSize;//鍒嗛〉瀹归噺 +@property (nonatomic, strong) NSMutableArray <MWPhoto *>*photos; // 棰勮鍥剧墖淇℃伅 +@property (nonatomic, strong) NSString *currentPreviewPhoto; // 褰撳墠棰勮鐨勫浘鐗� + @end @implementation HDLEZDeviceMsgListViewController @@ -45,7 +51,10 @@ make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT); make.left.bottom.right.equalTo(self.view); }]; -// _msgListV.choseDelegate=self; + __weak __typeof(self)weakSelf = self; + [_msgListV previewPicture:^(NSString * _Nonnull pictureUrl) { + [weakSelf previewPictureWithUrl:pictureUrl]; + }]; //涓嬫媺鍒锋柊 // 璁剧疆鍥炶皟锛堜竴鏃﹁繘鍏ュ埛鏂扮姸鎬侊紝灏辫皟鐢╰arget鐨刟ction锛屼篃灏辨槸璋冪敤self鐨刲oadNewData鏂规硶锛� @@ -101,14 +110,16 @@ weakSelf.msgListModel=[HDLEZDevMsgListModel yy_modelWithDictionary:responseData.data]; if (responseData.success) { weakSelf.msgListModel=[HDLEZDevMsgListModel yy_modelWithDictionary:responseData.data]; - if (weakSelf.msgListModel.list.count!=0) { - [weakSelf.msgList addObjectsFromArray:weakSelf.msgListModel.list]; - weakSelf.msgListV.msgList=weakSelf.msgList; + if (weakSelf.currentPageNo == 1) { + [weakSelf.msgList removeAllObjects]; + } + [weakSelf.msgList addObjectsFromArray:weakSelf.msgListModel.list]; + weakSelf.msgListV.msgList=weakSelf.msgList; + if (weakSelf.msgListModel.list.count == weakSelf.pageSize) { weakSelf.currentPageNo+=1; - }else{ + } else { [weakSelf.footer endRefreshingWithNoMoreData]; } - }else{ [weakSelf.view makeToast:responseData.message duration:1.5 @@ -117,5 +128,135 @@ }]; } +#pragma mark MWPhotoBrowserDelegate +- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser { + return self.photos.count; +} + +- (id <MWPhoto>)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index { + if (index < self.photos.count) { + return [self.photos objectAtIndex:index]; + } + return nil; +} + +- (void)didClickCurrentPhotoBrowserBlank:(MWPhotoBrowser *)photoBrowser { + [self.navigationController popToViewController:self animated:NO]; +} + +- (void)didClickDownLoad:(MWPhotoBrowser *)photoBrowser { + + __weak __typeof(self)weakSelf = self; + [self authPhotoLibraries:^(BOOL isAblity) { + if (isAblity) { + [weakSelf downloadTheImage]; + } else { + [weakSelf guideUserOpenAuth]; + } + }]; +} + +- (void)downloadTheImage { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + if (!self.currentPreviewPhoto || self.currentPreviewPhoto.length == 0) { + [UIView dd_showMessage:NSLocalizedString(@"device_save_gallery_failure", @"涓嬭浇澶辫触")]; + return; + } + NSURL *url = [NSURL URLWithString:self.currentPreviewPhoto]; + SDWebImageManager *manager = [SDWebImageManager sharedManager]; + UIImage *img; + if ([manager diskImageExistsForURL:url]) { + img = [[manager imageCache] imageFromDiskCacheForKey:url.absoluteString]; + } else { + //浠庣綉缁滀笅杞藉浘鐗� + NSData *data = [NSData dataWithContentsOfURL:url]; + img = [UIImage imageWithData:data]; + } + // 淇濆瓨鍥剧墖鍒扮浉鍐屼腑 + dispatch_async(dispatch_get_main_queue(), ^{ + UIImageWriteToSavedPhotosAlbum(img,self, @selector(image:didFinishSavingWithError + :contextInfo:),nil); + }); + }); +} + +//淇濆瓨鍥剧墖瀹屾垚涔嬪悗鐨勫洖璋� +- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error + contextInfo:(void *)contextInfo { + // Was there an error? + NSString *message = nil; + if (!error) { + message = NSLocalizedString(@"device_save_gallery", @"宸蹭繚瀛樿嚦鎵嬫満鐩稿唽"); + } + else + { + message = NSLocalizedString(@"device_save_gallery_failure", @"涓嬭浇澶辫触"); + NSLog(@"#######鍥剧墖淇濆瓨澶辫触锛�%@", [error description]); + } + [UIView dd_showMessage:message]; +} + +/*璁块棶鐩稿唽鏉冮檺 + */ +-(void)authPhotoLibraries:(void(^)(BOOL isAblity))result { + PHAuthorizationStatus author =[PHPhotoLibrary authorizationStatus]; + if (author == PHAuthorizationStatusRestricted || author ==PHAuthorizationStatusDenied){ + if (result) { + result(NO); + } + } else if (author == PHAuthorizationStatusNotDetermined) { // 棣栨鎺堟潈 + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + dispatch_async(queue, ^{ + [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { + if (status != PHAuthorizationStatusAuthorized) { + if (result) { + result(NO); + } + } else { + if (result) { + result(YES); + } + } + }]; + }); + } else { + if (result) { + result(YES); + } + } +} + +/*寮曞鐢ㄦ埛鎺堟潈鑾峰彇鍥剧墖 + */ +- (void)guideUserOpenAuth{ + UIAlertController *alertC = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"hdl_ez_download_tip", @"娓╅Θ鎻愮ず") message:NSLocalizedString(@"hdl_ez_download_auth", @"璇锋墦寮�璁块棶鏉冮檺") preferredStyle:(UIAlertControllerStyleAlert)]; + UIAlertAction *alertA = [UIAlertAction actionWithTitle:NSLocalizedString(@"hdl_ez_download_cancle", @"鍙栨秷") style:(UIAlertActionStyleDefault) handler:nil]; + UIAlertAction *act = [UIAlertAction actionWithTitle:NSLocalizedString(@"hdl_ez_download_toSet", @"鍘昏缃�") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { + // 寮曞鐢ㄦ埛璁剧疆 + NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; + + if ([[UIApplication sharedApplication] canOpenURL:url]) { + + [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; + } + }]; + [alertC addAction:alertA]; + [alertC addAction:act]; + [self presentViewController:alertC animated:YES completion:nil]; +} + +#pragma mark PrivateMethod +- (void)previewPictureWithUrl:(NSString *)picUrl { + self.currentPreviewPhoto = picUrl; + self.photos = [NSMutableArray array]; + [self.photos addObject:[MWPhoto photoWithURL:[NSURL URLWithString:picUrl]]]; + MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self]; + browser.displayActionButton = NO; + browser.zoomPhotosToFill = NO; + [browser showDownloadBtn]; + + [self.navigationController pushViewController:browser animated:NO]; +} + @end -- Gitblit v1.8.0