123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- //
- // receiveView.m
- // 双子星云手机
- //
- // Created by xd h on 2024/5/23.
- //
- #import "receiveView.h"
- #import "receiveHeadView.h"
- #import "receiveDownloadRecordTableView.h"
- #import "receiveSaveRecordTableView.h"
- #import "boxSaveFileManager.h"
- #import "downStatusModel.h"
- #import "boxDownloadFileManager.h"
- #import "AFHTTPSessionManager.h"
- #import "SGDownloadManager.h"
- @interface receiveView ()
- {
-
- }
- @property(nonatomic,strong) receiveHeadView * curReceiveHeadView;
- @property(nonatomic,strong) receiveDownloadRecordTableView * downloadRecordTableView;
- @property(nonatomic,strong) receiveSaveRecordTableView * saveRecordTableView;
- @end
- @implementation receiveView
- - (id)initWithFrame:(CGRect)frame{
- self = [super initWithFrame:frame];
- [self setBackgroundColor:[UIColor whiteColor]];
- _isReceiveType = 1;
- [self drawAnyView];
-
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(downloadTaskExeIng:) name:SGDownloadTaskExeing object:nil];
- return self;
- }
- - (void)drawAnyView{
- _curReceiveHeadView = [[receiveHeadView alloc] init];
- [self addSubview:_curReceiveHeadView];
-
- [_curReceiveHeadView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.mas_equalTo(0);
- make.right.mas_equalTo(0);
- make.top.mas_equalTo(0);
- make.height.mas_equalTo(40);
- }];
-
- KWeakSelf
- #pragma mark 点击接收的下载或者保存
- _curReceiveHeadView.didClickbuttonFun = ^(NSInteger tag) {
- [weakSelf didClickHeadButtonFun:tag];
- };
-
-
- _downloadRecordTableView = [[receiveDownloadRecordTableView alloc] init];
- [self addSubview:_downloadRecordTableView];
-
- [_downloadRecordTableView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.mas_equalTo(0);
- make.right.mas_equalTo(0);
- make.top.equalTo(_curReceiveHeadView.mas_bottom).offset(0);
- make.bottom.mas_equalTo(40);
- }];
-
- _downloadRecordTableView.didLongPressClick = ^{
- [weakSelf handleLongPressClickFun];
- };
-
- _saveRecordTableView = [[receiveSaveRecordTableView alloc] init];
- _saveRecordTableView.hidden = YES;
- [self addSubview:_saveRecordTableView];
-
- [_saveRecordTableView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.mas_equalTo(0);
- make.right.mas_equalTo(0);
- make.top.equalTo(_curReceiveHeadView.mas_bottom).offset(0);
- make.bottom.mas_equalTo(40);
- }];
-
- _saveRecordTableView.didLongPressClick = ^{
- [weakSelf handleLongPressClickFun];
- };
- }
- #pragma mark 长按事件传出去
- - (void)handleLongPressClickFun
- {
- if(self->_didLongPressClick){
- self->_didLongPressClick();
- }
- }
- #pragma mark 点击下载和接收
- - (void)didClickHeadButtonFun:(NSInteger)tag
- {
- _isReceiveType = tag;
- if(tag == 1){
- _downloadRecordTableView.hidden = NO;
- _saveRecordTableView.hidden = YES;
- }
- else if(tag == 2){
- _downloadRecordTableView.hidden = YES;
- _saveRecordTableView.hidden = NO;
- }
- }
- - (void)setIsReceiveType:(NSInteger)isReceiveType
- {
- _isReceiveType = isReceiveType;
-
- if(isReceiveType == 2){
- [_curReceiveHeadView didClickButFun:_curReceiveHeadView.saveButton];
- }
-
- }
- - (void)setIsEditType:(BOOL)isEditType{
- _isEditType = isEditType;
-
- if(_isReceiveType == 1){
- _downloadRecordTableView.isEditType = isEditType;
- }
- else{
- _saveRecordTableView.isEditType = isEditType;
- }
- }
- #pragma mark 点击全选
- - (void)setIsSelectAllType:(BOOL)isSelectAllType
- {
- if(_isReceiveType == 1){
- _downloadRecordTableView.isSelectAllType = isSelectAllType;
- }
- else{
- _saveRecordTableView.isSelectAllType = isSelectAllType;
- }
- }
- - (void)downloadTaskExeIng:(NSNotification *)notification
- {
- SGDownloadOperation *model = notification.userInfo.allValues.firstObject;
-
- mainBlock(^{
- //[self refreshUIWithModel:model];
- });
- HLog(@"下载中 %lld",model.currentSize);
- }
- #pragma mark 获取本地数据库数据
- - (void)getAllDataFun{
-
- [self getBoxDownLoadDataFun];
- [self getBoxSaveDataFun];
-
- // NSString *urlstr = @"https://media.w3.org/2010/05/sintel/trailer.mp4";
- // NSString *url2 = @"http://transfertest.armclouding.com:11010/getFile?path=/mnt/media_rw/B80050B2005078F8/电影/IMG_0914.MP4";
- //
- // NSString* encodedUrl = [url2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- // NSURL *url = [NSURL URLWithString:encodedUrl];
- //
- // // 创建下载任务
- // [[SGDownloadManager shareManager] downloadWithURL:url fileType:1 fileSize:0 complete:^(NSDictionary *respose, NSError *error) {
- // HLog(@"%@---%@",respose, error);
- // }];
-
- // [[netWorkManager shareInstance] cloudPhoneDownloadCallBackCode:url success:^(id _Nonnull responseObject) {
- //
- // } failure:^(NSError * _Nonnull error) {
- //
- // }];
-
- // NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- // NSString *documentDir = [paths lastObject];
- //
- //
- // NSString* encodedUrl = [url2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- // NSURL *url = [NSURL URLWithString:encodedUrl];
- //
- // NSURLRequest *request = [NSURLRequest requestWithURL:url];
- // NSURLSessionDownloadTask *task = [[AFHTTPSessionManager manager] downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
- // NSLog(@"%@", [NSString stringWithFormat:@"当前下载进度:%.2f%%",100.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount]);
- // } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
- // NSLog(@"临时文件路径: %@", targetPath);
- //
- // NSString *downloadPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent: @"Download"];
- // //打开文件管理器
- // NSFileManager *fileManager = [NSFileManager defaultManager];
- // //创建Download目录
- // [fileManager createDirectoryAtPath:downloadPath withIntermediateDirectories:YES attributes:nil error:nil];
- // //拼接文件路径
- // NSString *filePath = [downloadPath stringByAppendingPathComponent:response.suggestedFilename];
- //
- // NSURL *path = [NSURL fileURLWithPath:filePath];
- // [path URLByAppendingPathComponent:response.suggestedFilename];
- // return path;
- // } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
- // NSLog(@"本地存储路径: %@", filePath);
- // }];
- //
- // [task resume];
- }
- #pragma mark 读取保存到盒子的数据库
- - (void)getBoxSaveDataFun
- {
- KWeakSelf
- [[boxSaveFileManager shareInstance] getDataInDatabaseFun:NO complete:^(NSMutableArray * _Nonnull Arr) {
- [weakSelf AferGetBoxSaveDataBy:Arr];
- }];
- }
- - (void)AferGetBoxSaveDataBy:(NSMutableArray*)arr
- {
- _saveRecordTableView.outSideDataArr = arr;
- [self checkSaveFileToBoxStateFun];
- }
- - (NSMutableArray*)selectModelArr
- {
- if(_isReceiveType == 1){
- return _downloadRecordTableView.selectModelArr;
- }
- else{
- return _saveRecordTableView.selectModelArr;
- }
-
- return [NSMutableArray new];
- }
- #pragma mark 单个点击选中后删除
- - (void)deleteModelOneByOneFun{
- if(_isReceiveType == 1){
- [_downloadRecordTableView deleteModelOneByOneFun];
- }
- else{
- [_saveRecordTableView deleteModelOneByOneFun];
- }
- }
- #pragma mark 查询保存到盒子的下载状态
- - (void)checkSaveFileToBoxStateFun
- {
- NSMutableArray *checkArr = _saveRecordTableView.outSideDataArr.firstObject;
- if(!checkArr || checkArr.count == 0){
- return;
- }
-
- NSMutableDictionary*paraDict = [NSMutableDictionary new];
-
- NSMutableArray *pathArr = [NSMutableArray new];
-
- for (ShareFileDataModel*dataModel in checkArr){
- NSString *pathStr = dataModel.fileUrl;
- [pathArr addObject: pathStr ];
- }
-
- HLog(@"%@",pathArr);
- if (pathArr) {
- NSString *jsonStr = [iTools toJsonStrWithArray:pathArr];
- if(jsonStr){
- [paraDict setValue:jsonStr forKey:@"urls"];
- }
- }
-
- KWeakSelf
- [[netWorkManager shareInstance] cloudPhoneGETCallBackCode:@"downStatus" Parameters:paraDict success:^(id _Nonnull responseObject) {
-
- downStatusModel *model = [[downStatusModel alloc] initWithDictionary:responseObject error:nil];
- if(model && model.status == 0){
- [weakSelf updateDataAfterCheckDownStatus:model];
- }
- } failure:^(NSError * _Nonnull error) {
-
- }];
- }
- #pragma mark 查询保存到盒子的下载状态后更新数据
- - (void)updateDataAfterCheckDownStatus:(downStatusModel*)downStatusMod
- {
- [self updataBoxSaveDataBy:downStatusMod];
- [[boxSaveFileManager shareInstance] updataBoxSaveDataBy:downStatusMod];
- }
- #pragma mark 更新本地数据
- - (void)updataBoxSaveDataBy:(downStatusModel*)downStatusMod
- {
- for (downStatusDataModel*updataModel in downStatusMod.data) {
-
- for (ShareFileDataModel* model in _saveRecordTableView.boxSaveingArr) {
- if ([updataModel.url isEqualToString:model.fileUrl]) {
- if (updataModel.curStatus == 0
- || updataModel.curStatus == 3) {
- //不用处理
- }
- else if (updataModel.curStatus == 1) {
- //成功
- model.saveboxStateType = saveBoxStateDone;
- [_saveRecordTableView.boxSaveDoneArr addObject:model];
- [_saveRecordTableView.boxSaveingArr removeObject:model];
- }
- else{
- //失败
- model.saveboxStateType = saveBoxStateFail;
- [_saveRecordTableView.boxSavefailArr addObject:model];
- [_saveRecordTableView.boxSaveingArr removeObject:model];
- }
- break;
- }
- }
- }
-
- [_saveRecordTableView RefreshAllDataFun];
- }
- #pragma mark 读取盒子下载的数据库
- - (void)getBoxDownLoadDataFun
- {
- KWeakSelf
- [[boxDownloadFileManager shareInstance] getDataInDatabaseFun:NO complete:^(NSMutableArray * _Nonnull Arr) {
- [weakSelf AferGetBoxDownloadDataBy:Arr];
- }];
- }
- - (void)AferGetBoxDownloadDataBy:(NSMutableArray*)arr
- {
- _downloadRecordTableView.outSideDataArr = arr;
- }
- @end
|