|
|
@@ -0,0 +1,695 @@
|
|
|
+//
|
|
|
+// previewImageOrVideoViewController.m
|
|
|
+// 双子星云手机
|
|
|
+//
|
|
|
+// Created by xd h on 2024/5/13.
|
|
|
+//
|
|
|
+
|
|
|
+#import "previewImageOrVideoViewController.h"
|
|
|
+
|
|
|
+#import "couldPhoneFileListModel.h"
|
|
|
+#import "downLoadPreViewCell.h"
|
|
|
+#import "downloadFileBottomView.h"
|
|
|
+#import "downloadThumbnailManager.h"
|
|
|
+#import "downloadManager.h"
|
|
|
+#import "uploadFileRecordViewController.h"
|
|
|
+#import "UIScrollView+EmptyDataSet.h"
|
|
|
+#import "diskListBgView.h"
|
|
|
+#import "diskListTableView.h"
|
|
|
+#import "imageCollectionViewCell.h"
|
|
|
+#import "titleLabelReusableView.h"
|
|
|
+
|
|
|
+@interface previewImageOrVideoViewController ()<UICollectionViewDelegate,UICollectionViewDataSource,DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>
|
|
|
+{
|
|
|
+ UIButton *tapBtn;
|
|
|
+}
|
|
|
+@property (nonatomic, strong) UICollectionView *dataCollectionView;
|
|
|
+
|
|
|
+@property (strong, nonatomic) UILabel *MytitleLabel;
|
|
|
+@property (strong, nonatomic) UIImageView *selectTip;
|
|
|
+@property (nonatomic, strong) UIButton *rightButton;
|
|
|
+@property (nonatomic, strong) diskListBgView *diskListBgV;
|
|
|
+@property (nonatomic, strong) diskListTableView *diskListTableV;
|
|
|
+@property (nonatomic, strong) NSMutableArray*diskListArr;
|
|
|
+@property (nonatomic, copy) NSString *defaultDiskPath;
|
|
|
+
|
|
|
+
|
|
|
+@property (nonatomic, strong) downloadFileBottomView *downloadFileBottomV;
|
|
|
+
|
|
|
+@property(nonatomic,strong) couldPhoneFileListModel *curCouldPhoneFileListMod;
|
|
|
+@end
|
|
|
+
|
|
|
+@implementation previewImageOrVideoViewController
|
|
|
+
|
|
|
+- (void)viewDidLoad {
|
|
|
+ [super viewDidLoad];
|
|
|
+ // Do any additional setup after loading the view.
|
|
|
+
|
|
|
+ [self.toolBar setHidden:YES];
|
|
|
+ [self.navigationBar setHidden:YES];
|
|
|
+ [self.navBarBGView setHidden:NO];
|
|
|
+ self.navBarBGView.backgroundColor = [UIColor whiteColor];
|
|
|
+ [self.view setBackgroundColor:[UIColor whiteColor]];
|
|
|
+
|
|
|
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(searchFileListDoneFun:) name:searchFileListDoneNotification object:nil];
|
|
|
+
|
|
|
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didDownloadOneFileFun) name:downloadThumbnailDoneOneNotification object:nil];
|
|
|
+
|
|
|
+ [self drawAnyView];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)drawAnyView{
|
|
|
+
|
|
|
+ [self initNavHeadUIFun];
|
|
|
+
|
|
|
+ [self.view addSubview:self.dataCollectionView];
|
|
|
+ [self.dataCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.left.mas_equalTo(0);
|
|
|
+ make.right.mas_equalTo(0);
|
|
|
+ make.bottom.mas_equalTo(-(60 + safeArea));
|
|
|
+ make.top.equalTo(self.navBarBGView.mas_bottom).offset(10.f);
|
|
|
+ }];
|
|
|
+
|
|
|
+ _downloadFileBottomV = [[downloadFileBottomView alloc] init];
|
|
|
+ [self.view insertSubview:_downloadFileBottomV atIndex:0];
|
|
|
+
|
|
|
+ [_downloadFileBottomV mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.left.mas_equalTo(0);
|
|
|
+ make.right.mas_equalTo(0);
|
|
|
+ make.bottom.mas_equalTo(0);
|
|
|
+ make.height.mas_equalTo(60 + safeArea);
|
|
|
+ }];
|
|
|
+
|
|
|
+ [self RefreshBottomViewUIFun];
|
|
|
+
|
|
|
+ KWeakSelf
|
|
|
+ _downloadFileBottomV.didClickDownloadFile = ^{
|
|
|
+ [weakSelf gotoDownloadloadFileRecordFun];
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+ NSMutableArray *arr = [NSMutableArray new];
|
|
|
+ NSArray *diskList = ksharedAppDelegate.cloudPhoneExtraFileListMod.data;
|
|
|
+ if(diskList && [diskList isKindOfClass:[NSArray class]]){
|
|
|
+ for (cloudPhoneExtraFileModel *model in diskList) {
|
|
|
+ model.isCheckType = NO;
|
|
|
+ [arr addObject:model];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(arr.count >0){
|
|
|
+ cloudPhoneExtraFileModel *model = arr.firstObject;
|
|
|
+ model.isCheckType = YES;
|
|
|
+ _defaultDiskPath = model.extraPath;
|
|
|
+ }
|
|
|
+ _diskListArr = arr;
|
|
|
+ [self setTitleAfterGetdiskFun];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)initNavHeadUIFun
|
|
|
+{
|
|
|
+ //title
|
|
|
+ UILabel *titleLabel = [[UILabel alloc] init];
|
|
|
+ titleLabel.textAlignment = NSTextAlignmentCenter;
|
|
|
+ titleLabel.font = [UIFont boldSystemFontOfSize:16.0];
|
|
|
+ titleLabel.textColor = [UIColor blackColor];
|
|
|
+ titleLabel.translatesAutoresizingMaskIntoConstraints = NO;
|
|
|
+ [self.navBarBGView addSubview:titleLabel];
|
|
|
+
|
|
|
+ self.MytitleLabel = titleLabel;
|
|
|
+
|
|
|
+ //selectTipImageView
|
|
|
+ UIImageView *selectTip = [[UIImageView alloc] init];
|
|
|
+ selectTip.image = [UIImage imageNamed:@"upload_image_arrow"];
|
|
|
+ selectTip.translatesAutoresizingMaskIntoConstraints = NO;
|
|
|
+ [self.navBarBGView addSubview:selectTip];
|
|
|
+ self.selectTip = selectTip;
|
|
|
+
|
|
|
+ tapBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
|
+ tapBtn.backgroundColor = [UIColor clearColor];
|
|
|
+ tapBtn.translatesAutoresizingMaskIntoConstraints = NO;
|
|
|
+ [tapBtn addTarget:self action:@selector(selectDiskAction:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+ [self.navBarBGView addSubview:tapBtn];
|
|
|
+
|
|
|
+ [tapBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.centerX.mas_equalTo(self.navBarBGView.mas_centerX);
|
|
|
+ make.centerY.mas_equalTo(self.backBtn.mas_centerY);
|
|
|
+ make.width.mas_equalTo(100);
|
|
|
+ make.height.mas_equalTo(30);
|
|
|
+ }];
|
|
|
+
|
|
|
+ [self setTitleLabelText:@""];
|
|
|
+
|
|
|
+ _rightButton = [[UIButton alloc] init];
|
|
|
+ [_rightButton setTitle:NSLocalizedString(@"File_upload_Record_select_all",nil) forState:UIControlStateNormal];
|
|
|
+ [_rightButton setTitle:NSLocalizedString(@"File_upload_cancel_select_all",nil) forState:UIControlStateSelected];
|
|
|
+
|
|
|
+ [_rightButton setTitleColor:[UIColor hwColor:@"#01B7EA" alpha:1.0] forState:UIControlStateNormal];
|
|
|
+ _rightButton.titleLabel.font = [UIFont systemFontOfSize:16.0];
|
|
|
+ _rightButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
|
|
|
+ [_rightButton addTarget:self action:@selector(didClickSelectAllButton:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+ [self.navBarBGView addSubview:_rightButton];
|
|
|
+
|
|
|
+ //多国语言适配
|
|
|
+ NSString *languageCode = [NSLocale preferredLanguages][0];
|
|
|
+ if([languageCode rangeOfString:@"ja-"].location != NSNotFound)
|
|
|
+ {
|
|
|
+ _rightButton.titleLabel.font = [UIFont systemFontOfSize:13.0];
|
|
|
+ }
|
|
|
+
|
|
|
+ [_rightButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.width.mas_equalTo(80);
|
|
|
+ make.height.mas_equalTo(40);
|
|
|
+ make.right.mas_equalTo(-15);
|
|
|
+ make.centerY.mas_equalTo(self.titleLabel.mas_centerY);
|
|
|
+ }];
|
|
|
+
|
|
|
+ //_rightButton.backgroundColor = [UIColor redColor];
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark - 懒加载
|
|
|
+- (UICollectionView *)dataCollectionView{
|
|
|
+ if (!_dataCollectionView) {
|
|
|
+ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
|
|
+ // 设置item的行间距和列间距
|
|
|
+ layout.minimumInteritemSpacing = 1;
|
|
|
+ layout.minimumLineSpacing = 1;
|
|
|
+ // 设置item的大小
|
|
|
+ CGFloat itemW = ([UIScreen mainScreen].bounds.size.width - 10) /4 ;
|
|
|
+ layout.itemSize = CGSizeMake(itemW, itemW);
|
|
|
+ layout.headerReferenceSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 40);
|
|
|
+ //layout.footerReferenceSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 40);
|
|
|
+ // 设置每个分区的 上左下右 的内边距
|
|
|
+ layout.sectionInset = UIEdgeInsetsMake(1, 1 ,1, 1);
|
|
|
+ // 设置区头和区尾的大小
|
|
|
+ layout.headerReferenceSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 10);
|
|
|
+ //layout.footerReferenceSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 10);
|
|
|
+ // 设置分区的头视图和尾视图 是否始终固定在屏幕上边和下边
|
|
|
+ layout.sectionFootersPinToVisibleBounds = YES;
|
|
|
+ //设置滚动条方向
|
|
|
+ layout.scrollDirection = UICollectionViewScrollDirectionVertical;
|
|
|
+
|
|
|
+ _dataCollectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout];
|
|
|
+ _dataCollectionView.backgroundColor = [UIColor whiteColor];
|
|
|
+ _dataCollectionView.scrollEnabled = YES;
|
|
|
+
|
|
|
+ //注册cell
|
|
|
+ [_dataCollectionView registerClass:[imageCollectionViewCell class] forCellWithReuseIdentifier:@"imageCollectionViewCell"];
|
|
|
+
|
|
|
+ [_dataCollectionView registerClass:[titleLabelReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"titleLabelReusableView"];
|
|
|
+
|
|
|
+ _dataCollectionView.delegate = self;
|
|
|
+ _dataCollectionView.dataSource = self;
|
|
|
+
|
|
|
+ //空数据引入第三方开源处理
|
|
|
+ _dataCollectionView.emptyDataSetSource = self;
|
|
|
+ _dataCollectionView.emptyDataSetDelegate = self;
|
|
|
+ }
|
|
|
+
|
|
|
+ return _dataCollectionView;
|
|
|
+}
|
|
|
+
|
|
|
+- (diskListBgView*)diskListBgV
|
|
|
+{
|
|
|
+ if(!_diskListBgV){
|
|
|
+ _diskListBgV = [[diskListBgView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
|
|
|
+ _diskListBgV.hidden = YES;
|
|
|
+ [self.view addSubview:_diskListBgV];
|
|
|
+
|
|
|
+ KWeakSelf
|
|
|
+ _diskListBgV.didTapWhitePlace = ^{
|
|
|
+ [weakSelf hideDiskListVieFun];
|
|
|
+ };
|
|
|
+
|
|
|
+ [_diskListBgV mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.left.mas_equalTo(0);
|
|
|
+ make.bottom.mas_equalTo(0);
|
|
|
+ make.right.mas_equalTo(0);
|
|
|
+ make.top.mas_equalTo(self.navBarBGView.mas_bottom);
|
|
|
+ }];
|
|
|
+
|
|
|
+ [self.view addSubview:self.diskListTableV];
|
|
|
+ self.diskListTableV.hidden = YES;
|
|
|
+ [self.diskListTableV mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.left.mas_equalTo(0);
|
|
|
+ make.height.mas_equalTo(3*70);
|
|
|
+ make.right.mas_equalTo(0);
|
|
|
+ make.top.mas_equalTo(self.navBarBGView.mas_bottom);
|
|
|
+ }];
|
|
|
+
|
|
|
+ self.diskListTableV.diskListArr = _diskListArr;
|
|
|
+
|
|
|
+ self.diskListTableV.didClickDiskModel = ^(NSString * _Nonnull checkPath) {
|
|
|
+ [weakSelf didCheckDiskFunByPath:checkPath];
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ return _diskListBgV;
|
|
|
+}
|
|
|
+
|
|
|
+- (UITableView *)diskListTableV{
|
|
|
+ if (!_diskListTableV) {
|
|
|
+ _diskListTableV = [[diskListTableView alloc] init];
|
|
|
+//
|
|
|
+ }
|
|
|
+ return _diskListTableV;
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark 选中磁盘
|
|
|
+- (void)didCheckDiskFunByPath:(NSString*)pathStr
|
|
|
+{
|
|
|
+ if(self.defaultDiskPath
|
|
|
+ && self.defaultDiskPath.length>0
|
|
|
+ && ![self.defaultDiskPath isEqualToString:pathStr]){
|
|
|
+ //切换硬盘了 取消全选
|
|
|
+
|
|
|
+ _rightButton.selected = YES;
|
|
|
+ [self didClickSelectAllButton:_rightButton];
|
|
|
+ }
|
|
|
+
|
|
|
+ self.defaultDiskPath = pathStr;
|
|
|
+ //[self searchFileListFun];
|
|
|
+ [self setTitleAfterGetdiskFun];
|
|
|
+ [self hideDiskListVieFun];
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark - 瀑布流委托
|
|
|
+- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
|
|
+
|
|
|
+ if(!_curCouldPhoneFileListMod){
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return _curCouldPhoneFileListMod.data.list.count;
|
|
|
+}
|
|
|
+
|
|
|
+- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
|
|
|
+{
|
|
|
+ __block NSInteger row = indexPath.row;
|
|
|
+ //创建item 从缓存池中拿 Item
|
|
|
+ imageCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"imageCollectionViewCell" forIndexPath:indexPath];
|
|
|
+ if(!cell){
|
|
|
+ cell = [[imageCollectionViewCell alloc] init];
|
|
|
+ }
|
|
|
+
|
|
|
+ if(row < _curCouldPhoneFileListMod.data.list.count){
|
|
|
+ couldPhoneFileModel* fileModel = _curCouldPhoneFileListMod.data.list[row];
|
|
|
+ cell.curFileModel = fileModel;
|
|
|
+
|
|
|
+// KWeakSelf
|
|
|
+// cell.didClickSwitch = ^(BOOL SwitchOn) {
|
|
|
+// if([weakSelf userCheckFileModel:fileModel withShowTip:YES]){
|
|
|
+// [weakSelf userCheckFilePreviewByRow:row];
|
|
|
+// }
|
|
|
+// };
|
|
|
+ }
|
|
|
+
|
|
|
+ return cell;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
|
|
|
+ if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
|
|
|
+ titleLabelReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"titleLabelReusableView" forIndexPath:indexPath];
|
|
|
+ headerView.titlelabel.text = @"2025年13月32号";
|
|
|
+ return headerView;
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil;
|
|
|
+}
|
|
|
+
|
|
|
+- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
|
|
|
+
|
|
|
+ return CGSizeMake([UIScreen mainScreen].bounds.size.width, 40);
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark 空数据
|
|
|
+- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView {
|
|
|
+
|
|
|
+ NSString *imageName = @"uploadFile_noData";
|
|
|
+
|
|
|
+ return [UIImage imageNamed:imageName];
|
|
|
+}
|
|
|
+
|
|
|
+- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView {
|
|
|
+ NSString *text = NSLocalizedString(@"File_download_file_no_data",nil);
|
|
|
+
|
|
|
+ NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:16.0f],
|
|
|
+ NSForegroundColorAttributeName: HW999999Color};
|
|
|
+
|
|
|
+ return [[NSAttributedString alloc] initWithString:text attributes:attributes];
|
|
|
+}
|
|
|
+
|
|
|
+//调整图片位置
|
|
|
+- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView {
|
|
|
+ return -150;
|
|
|
+}
|
|
|
+
|
|
|
+//ios端:
|
|
|
+//1、需求说明:解决除MP4 MOV 3GP M4V 总计4种格式外,其他格式下载失败的问题;
|
|
|
+//2、交互说明:下载列表勾选文件中含有其他格式,toast提示“IOS系统仅支持MP4、MOV、3GP、M4V 的视频格式,其他格式无法下载”。点击下载按钮,过滤其他格式文件,仅下载MP4、MOV、3GP、M4V 的视频格式文件;
|
|
|
+
|
|
|
+//ios支持图片格式: (SVG 不支持)
|
|
|
+//需求说明:解决除JPG PNG GIF TIFF BMP总计5种格式外,其他格式下载失败的问题
|
|
|
+//视觉交互:选择文件中含有其他格式,toast提示“IOS系统仅支持JPG 、PNG、GIF、TIFF、BMP的图片格式,其他格式无法下载”。点击下载按钮,过滤其他格式文件,仅下载JPG 、PNG、GIF、TIFF、BMP的图片格式文件;
|
|
|
+
|
|
|
+- (BOOL)userCheckFileModel:(couldPhoneFileModel*)fileModel withShowTip:(BOOL)canShow{
|
|
|
+ NSString*name = [fileModel.name lowercaseString];
|
|
|
+ NSArray *nameArr = [name componentsSeparatedByString:@"."];
|
|
|
+ if(nameArr.count >0 && !_isPhotoType){
|
|
|
+ BOOL canDownLoadType = NO;
|
|
|
+
|
|
|
+ NSString *lastName = nameArr.lastObject;
|
|
|
+ if([lastName isEqualToString:@"mp4"]
|
|
|
+ ||[lastName isEqualToString:@"mov"]
|
|
|
+ ||[lastName isEqualToString:@"3gp"]
|
|
|
+ ||[lastName isEqualToString:@"m4v"]){
|
|
|
+ canDownLoadType = YES;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!canDownLoadType){
|
|
|
+ if(canShow){
|
|
|
+ [[iToast makeText:NSLocalizedString(@"download_video_disable_state",nil)] show];
|
|
|
+ }
|
|
|
+
|
|
|
+ return NO;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(nameArr.count >0 && _isPhotoType){
|
|
|
+ BOOL canDownLoadType = NO;
|
|
|
+ //JPG 、PNG、GIF、TIFF、BMP
|
|
|
+ NSString *lastName = nameArr.lastObject;
|
|
|
+ if([lastName isEqualToString:@"jpg"]
|
|
|
+ ||[lastName isEqualToString:@"png"]
|
|
|
+ ||[lastName isEqualToString:@"gif"]
|
|
|
+ ||[lastName isEqualToString:@"tiff"]
|
|
|
+ ||[lastName isEqualToString:@"bmp"]
|
|
|
+ ||[lastName isEqualToString:@"heic"]
|
|
|
+ ||[lastName isEqualToString:@"jpeg"]
|
|
|
+ ||[lastName isEqualToString:@"heif"]){
|
|
|
+ canDownLoadType = YES;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!canDownLoadType){
|
|
|
+ if(canShow){
|
|
|
+ [[iToast makeText:NSLocalizedString(@"download_image_disable_state",nil)] show];
|
|
|
+ }
|
|
|
+ return NO;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return YES;
|
|
|
+}
|
|
|
+
|
|
|
+- (void)userCheckFilePreviewByRow:(NSInteger)row
|
|
|
+{
|
|
|
+ if(row < _curCouldPhoneFileListMod.data.list.count){
|
|
|
+ couldPhoneFileModel* fileModel = _curCouldPhoneFileListMod.data.list[row];
|
|
|
+ fileModel.isSelectType = !fileModel.isSelectType;
|
|
|
+ //[self.tableView reloadData];
|
|
|
+ [self.dataCollectionView reloadData];
|
|
|
+ [self RefreshBottomViewUIFun];
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (void)didClickSelectAllButton:(UIButton*)button
|
|
|
+{
|
|
|
+ button.selected = !button.selected;
|
|
|
+ BOOL isNeedShowTip = NO;
|
|
|
+ for (couldPhoneFileModel* fileModel in _curCouldPhoneFileListMod.data.list) {
|
|
|
+
|
|
|
+ if(!button.selected){
|
|
|
+ fileModel.isSelectType = button.selected;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if([self userCheckFileModel:fileModel withShowTip:NO]){
|
|
|
+ fileModel.isSelectType = button.selected;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ isNeedShowTip = YES;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if(isNeedShowTip){
|
|
|
+ if(_isPhotoType){
|
|
|
+ [[iToast makeText:NSLocalizedString(@"download_image_disable_state",nil)] show];
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ [[iToast makeText:NSLocalizedString(@"download_video_disable_state",nil)] show];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //[self.tableView reloadData];
|
|
|
+ [self.dataCollectionView reloadData];
|
|
|
+ [self RefreshBottomViewUIFun];
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark 设置标题
|
|
|
+- (void)setTitleLabelText:(NSString*)title
|
|
|
+{
|
|
|
+ NSArray *diskNameArr = [_defaultDiskPath componentsSeparatedByString:@"/"];
|
|
|
+ if(diskNameArr && diskNameArr.count >= 2){
|
|
|
+
|
|
|
+ NSString *name = diskNameArr.lastObject;
|
|
|
+ if(name.length == 0)
|
|
|
+ {
|
|
|
+ name = diskNameArr[diskNameArr.count -2];
|
|
|
+ }
|
|
|
+
|
|
|
+ title = [[NSString alloc] initWithFormat:@"[%@]%@",name,title];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ self.MytitleLabel.text = title;
|
|
|
+
|
|
|
+ CGFloat curWidth = [title boundingRectWithSize:CGSizeMake(SCREEN_W, 30) options:(NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:16.f]} context:nil].size.width;
|
|
|
+
|
|
|
+ curWidth += 20;
|
|
|
+ //HLog(@"title w:%f",curWidth);
|
|
|
+ [self.MytitleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.centerX.mas_equalTo(self.navBarBGView.mas_centerX).offset(-10);
|
|
|
+ make.centerY.mas_equalTo(self.backBtn.mas_centerY);
|
|
|
+ make.width.mas_equalTo(curWidth);
|
|
|
+ make.height.mas_equalTo(30);
|
|
|
+ }];
|
|
|
+ //self.MytitleLabel.backgroundColor = [UIColor greenColor];
|
|
|
+
|
|
|
+ [self.selectTip mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.left.mas_equalTo(self.MytitleLabel.mas_right).offset(0);
|
|
|
+ make.centerY.mas_equalTo(self.backBtn.mas_centerY);
|
|
|
+ make.width.mas_equalTo(15);
|
|
|
+ make.height.mas_equalTo(15);
|
|
|
+ }];
|
|
|
+
|
|
|
+ [tapBtn mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
|
+ make.centerX.mas_equalTo(self.navBarBGView.mas_centerX);
|
|
|
+ make.centerY.mas_equalTo(self.backBtn.mas_centerY);
|
|
|
+ make.width.mas_equalTo(curWidth+15);
|
|
|
+ make.height.mas_equalTo(30);
|
|
|
+ }];
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark 选择硬盘
|
|
|
+- (void)selectDiskAction:(UIButton*)but
|
|
|
+{
|
|
|
+ if(self.diskListBgV.hidden){
|
|
|
+ [self showDiskListVieFun];
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ [self hideDiskListVieFun];
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+- (void)showDiskListVieFun
|
|
|
+{
|
|
|
+ self.diskListBgV.hidden = NO;
|
|
|
+ self.diskListTableV.hidden = NO;
|
|
|
+
|
|
|
+ [UIView animateWithDuration:0.3 animations:^{
|
|
|
+ CGRect rect = self.diskListTableV.frame;
|
|
|
+ rect.origin.y = CGRectGetMaxY(self.navBarBGView.frame);
|
|
|
+ self.diskListTableV.frame = rect;
|
|
|
+
|
|
|
+ self.selectTip.transform = CGAffineTransformMakeRotation(M_PI);
|
|
|
+ }];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)hideDiskListVieFun
|
|
|
+{
|
|
|
+ self.diskListBgV.hidden = YES;
|
|
|
+
|
|
|
+ [UIView animateWithDuration:0.3 animations:^{
|
|
|
+ self.diskListTableV.hidden = YES;
|
|
|
+ self.selectTip.transform = CGAffineTransformIdentity;
|
|
|
+
|
|
|
+ }completion:^(BOOL finished) {
|
|
|
+ CGRect rect = self.diskListTableV.frame;
|
|
|
+ rect.origin.y = 0;
|
|
|
+ self.diskListTableV.frame = rect;
|
|
|
+ }];
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark 刷新底部
|
|
|
+- (void)RefreshBottomViewUIFun
|
|
|
+{
|
|
|
+ NSMutableArray *selectArr = [NSMutableArray new];
|
|
|
+
|
|
|
+ for (couldPhoneFileModel* fileModel in _curCouldPhoneFileListMod.data.list) {
|
|
|
+
|
|
|
+ if(fileModel.isSelectType){
|
|
|
+ [selectArr addObject:fileModel];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ _downloadFileBottomV.indexPathsForSelectedItems = selectArr;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark 设置标题
|
|
|
+- (void)setTitleAfterGetdiskFun
|
|
|
+{
|
|
|
+ if(_isPhotoType){
|
|
|
+ //self.titleLabel.text = NSLocalizedString(@"my_set_no_image_upload",nil) ;
|
|
|
+ [self setTitleLabelText:NSLocalizedString(@"my_set_no_image_upload",nil)];
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ //self.titleLabel.text = NSLocalizedString(@"my_set_no_video_upload",nil) ;
|
|
|
+ [self setTitleLabelText:NSLocalizedString(@"my_set_no_video_upload",nil)];
|
|
|
+ }
|
|
|
+
|
|
|
+ [self searchFileListFun];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)viewWillAppear:(BOOL)animated
|
|
|
+{
|
|
|
+ [super viewWillAppear:animated];
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (void)viewWillDisappear:(BOOL)animated{
|
|
|
+ [super viewWillDisappear:animated];
|
|
|
+
|
|
|
+ //[self removeNewIndicator];
|
|
|
+ [self removeNewIndicatorHaveStr];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)searchFileListFun
|
|
|
+{
|
|
|
+ NSMutableDictionary *dict = [NSMutableDictionary new];
|
|
|
+ NSNumber *curNum = [NSNumber numberWithBool:_isPhotoType];
|
|
|
+ [dict setObject:curNum forKey:@"type"];
|
|
|
+ if(!_defaultDiskPath){
|
|
|
+ _defaultDiskPath = @"";
|
|
|
+ }
|
|
|
+ [dict setObject:_defaultDiskPath forKey:@"path"];
|
|
|
+
|
|
|
+ [[NSNotificationCenter defaultCenter] postNotificationName:searchFileListBeginNotification object:dict];/*发送通知*/
|
|
|
+
|
|
|
+ //[self showNewIndicatorWithCanBack:YES canTouch:NO];
|
|
|
+ [self showNewIndicatorHaveStrWithCanBack:YES canTouch:NO showText:NSLocalizedString(@"common_loading_tip",nil)];
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (void)searchFileListDoneFun:(NSNotification*)notification
|
|
|
+{
|
|
|
+ //[self removeNewIndicator];
|
|
|
+ [self removeNewIndicatorHaveStr];
|
|
|
+
|
|
|
+ NSDictionary *dataDict = [notification object];
|
|
|
+
|
|
|
+ if(!dataDict || ![dataDict isKindOfClass:[NSDictionary class]]){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ _curCouldPhoneFileListMod = [[couldPhoneFileListModel alloc] initWithDictionary:dataDict error:nil];
|
|
|
+
|
|
|
+ NSMutableArray *filterArr = [NSMutableArray new];
|
|
|
+ for (couldPhoneFileModel*model in _curCouldPhoneFileListMod.data.list) {
|
|
|
+ //if(model.length > 1024)
|
|
|
+ if(model.length > 1024*50)
|
|
|
+ {
|
|
|
+ [filterArr addObject:model];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ _curCouldPhoneFileListMod.data.list = filterArr;
|
|
|
+
|
|
|
+ //[self.tableView reloadData];
|
|
|
+ [self.dataCollectionView reloadData];
|
|
|
+
|
|
|
+ //这个要做判断 不能为空
|
|
|
+ [self gotoDownThumbnailManagerFun];
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark 去下载缩略图
|
|
|
+- (void)gotoDownThumbnailManagerFun
|
|
|
+{
|
|
|
+// if(_curCouldPhoneFileListMod.data.list && _curCouldPhoneFileListMod.data.list.count >0){
|
|
|
+// [[downloadThumbnailManager shareInstance] handlToDownloadThumbnailWith:_curCouldPhoneFileListMod.data.list];
|
|
|
+// }
|
|
|
+}
|
|
|
+
|
|
|
+- (void)gotoDownloadloadFileRecordFun
|
|
|
+{
|
|
|
+ uploadFileRecordViewController *vc = [uploadFileRecordViewController new];
|
|
|
+ [self.navigationController pushViewController:vc animated:YES];
|
|
|
+ vc.isDownloadingType = YES;
|
|
|
+ [vc gotoDownloadFile:_downloadFileBottomV.indexPathsForSelectedItems];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)viewDidAppear:(BOOL)animated{
|
|
|
+ [super viewDidAppear:animated];
|
|
|
+ [self showDownloadTipFun];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)showDownloadTipFun
|
|
|
+{
|
|
|
+ BOOL didReadUploadTipType = [HWDataManager getBoolWithKey:Const_file_downLoad_need_read];
|
|
|
+
|
|
|
+ if(didReadUploadTipType){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //KWeakSelf
|
|
|
+ /*弹窗提示恢复出厂*/
|
|
|
+ ComontAlretViewController *nextVC = [[ComontAlretViewController alloc] initWithTiTle:nil
|
|
|
+ msg:NSLocalizedString(@"upload_download_need_read_msg",nil)
|
|
|
+ imageStr:nil
|
|
|
+ cancelTitle:NSLocalizedString(@"guide_set_pwd_guide_know",nil)
|
|
|
+ okTitle:nil
|
|
|
+ isOkBtnHighlight:NO
|
|
|
+ didClickOk:^{
|
|
|
+
|
|
|
+ } didClickCancel:^{
|
|
|
+ [HWDataManager setBoolWithKey:Const_file_downLoad_need_read value:YES];
|
|
|
+ }];
|
|
|
+
|
|
|
+ nextVC.modalPresentationStyle = UIModalPresentationCustom;
|
|
|
+
|
|
|
+ [self presentViewController:nextVC animated:YES completion:^{
|
|
|
+ nextVC.view.superview.backgroundColor = [UIColor clearColor];
|
|
|
+ }];
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+- (void)didDownloadOneFileFun
|
|
|
+{
|
|
|
+ mainBlock(^{
|
|
|
+ //[self.tableView reloadData];
|
|
|
+ [self.dataCollectionView reloadData];
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+@end
|