123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629 |
- //
- // nasBackupsManager.m
- // Private-X
- //
- // Created by xd h on 2024/8/29.
- //
- #import "nasBackupsManager.h"
- #import "nasMixBackupsManager.h"
- @interface nasBackupsManager ()
- /**检测任务10s后 无反馈重新开始 */
- @property (nonatomic, assign) NSInteger taskRenewTime; //
- @property (nonatomic,strong)photosBackupsTaskModel *lastModel;//最后一次备份的数据
- @property (nonatomic, assign) BOOL isGetFileDataFailType;//获取图片失败
- @property (nonatomic, assign) NSUInteger getFileDataFailCount;//获取图片失败数量
- @end
- @implementation nasBackupsManager
- + (instancetype)shareInstance {
- static nasBackupsManager *_instance;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- _instance = [[self alloc] init];
- });
- return _instance;
- }
- - (void)AutohandlePhotosBackupsFun
- {
- NSString *curSdnId = ksharedAppDelegate.DeviceThirdIdMod.data.sdnId;
- if(!_sdnId || ![curSdnId isEqualToString:_sdnId])
- {//没有备份过 或者更换设备了
- [self handlePhotosBackupsFun];
- }
- else{
- [self checkReBackupsFileFun];
- }
-
- }
- - (void)handlePhotosBackupsFun
- {
- _getFileDataFailCount = 0;
- BOOL haveOpenBackups = [HWDataManager getBoolWithKey:stringKeyAddSn(Const_photo_backups_state)];
- if(!haveOpenBackups){
- return;
- }
-
- if(ksharedAppDelegate.DisabledFileTransferType){
- return;
- }
-
- //相册权限
- if (![[TZImageManager manager] authorizationStatusAuthorized]){
- [HWDataManager setBoolWithKey:Const_photo_backups_state value:NO];
- return;
- }
-
- NSString *curSdnId = ksharedAppDelegate.DeviceThirdIdMod.data.sdnId;
- _sdnId = curSdnId;
-
- [photosBackupsTaskModel bg_findAsync:backups_photos_tableName limit:0 orderBy:nil desc:YES complete:^(NSArray * _Nullable array) {
- if(!array || array.count == 0){
- [self getAllAlbumsFun];
- return;
- }
-
- if(array.count >1){
- [self keepDatabaseOneDataFun];
- }
-
- self->_lastModel = array.firstObject;
-
- HLog(@"1 bg_id:%@",self->_lastModel.bg_id);
-
- if(self->_lastModel.isBackupsSuspendType == backupsSuspendByUser){
- return;
- }
-
- if(self->_lastModel.curBackupsState == backupsStateFail
- ||self->_lastModel.curBackupsState == backupsStateDone){//上次备份完成
- [self getAllAlbumsFun];
- }
- else{//继续上次的备份任务
- [self handelBackupsModelFun:self->_lastModel];
- }
- }];
-
- }
- - (void)keepDatabaseOneDataFun
- {
- [photosBackupsTaskModel bg_deleteFirstObject:backups_photos_tableName];
- }
- //备份开始查询相册
- - (void)getAllAlbumsFun
- {
- //
- KWeakSelf
- [[TZImageManager manager] getAllAlbums:YES allowPickingImage:YES needFetchAssets:NO completion:^(NSArray<TZAlbumModel *> *models) {
-
- if(models.count >= 1){
- TZAlbumModel *curAlbumModel= models.firstObject;
-
- photosBackupsTaskModel * taskModel = [photosBackupsTaskModel new];
- //taskModel.count = curAlbumModel.count;
- //taskModel.result = curAlbumModel.result;
-
- taskModel.failCount = 0;
- taskModel.didBackupsCount = 0;
- taskModel.bg_tableName = backups_photos_tableName;
-
- //备份路径
- NSString * backupsDefaultPath = [HWDataManager getStringWithKey:stringKeyAddSn(Const_photo_backups_default_path)];
-
- if(!backupsDefaultPath || backupsDefaultPath.length == 0){
- backupsDefaultPath = Const_default_backups_path;
- [HWDataManager setStringWithKey:stringKeyAddSn(Const_photo_backups_default_path) value:backupsDefaultPath];
- }
-
- NSString *lastStr= [backupsDefaultPath substringFromIndex:backupsDefaultPath.length-1];
- if(![lastStr isEqualToString:@"/"]){
- backupsDefaultPath = [[NSString alloc] initWithFormat:@"%@/",backupsDefaultPath];
- }
-
- taskModel.backupsPath = backupsDefaultPath;
-
- NSMutableString *allLocalIdentifier= [NSMutableString new];
-
- for (PHAsset *asset in curAlbumModel.result) {
- if (asset.localIdentifier) {
- if(allLocalIdentifier.length >0){
- [allLocalIdentifier appendString:@"&"];
- }
- [allLocalIdentifier appendString:asset.localIdentifier];
- }
- }
-
- taskModel.totalLocalIdentifier = allLocalIdentifier;
-
- if(self->_lastModel
- && self->_lastModel.totalLocalIdentifier
- && (self->_lastModel.backupsPath && [self->_lastModel.backupsPath isEqualToString:taskModel.backupsPath])){//相册备份排重
- taskModel.PreDidBackupsCount = self->_lastModel.PreDidBackupsCount + self->_lastModel.didBackupsCount;
- taskModel.curTaskLocalIdentifier = [weakSelf AlbumBackupsHandleNew:taskModel];
- }
- else{
- taskModel.curTaskLocalIdentifier = allLocalIdentifier;
- }
-
-
- if(taskModel.curTaskLocalIdentifier.length == 0){
- taskModel.count = 0;
- }
- else{
- taskModel.count = [taskModel.curTaskLocalIdentifier componentsSeparatedByString:@"&"].count;
- }
-
- HLog(@"2 bg_id:%@",taskModel.bg_id);
-
- [taskModel bg_saveAsync:^(BOOL isSuccess) {
- if(!isSuccess){
- HLog(@"\n\nError!!!\n\n");
- }
- else{
- //[self handelBackupsModelFun:taskModel];
- [self handlePhotosBackupsFun];
- }
- }];
- }
- }];
- }
- - (NSString*)AlbumBackupsHandleNew:(photosBackupsTaskModel * )taskModel
- {
- NSArray* curLocalIdentifierArr = [taskModel.totalLocalIdentifier componentsSeparatedByString:@"&"];
- NSArray* preLocalIdentifierArr = [_lastModel.totalLocalIdentifier componentsSeparatedByString:@"&"];
-
- //处理异常 (上次没有备份完成)
- NSInteger totalBackupNum = _lastModel.PreDidBackupsCount + _lastModel.didBackupsCount + _lastModel.failCount;
- if(totalBackupNum < preLocalIdentifierArr.count){//preLocalIdentifierArr 改为已经备份过的
- preLocalIdentifierArr = [preLocalIdentifierArr subarrayWithRange:NSMakeRange(0,totalBackupNum)];
- }
-
- NSMutableArray *allArr = [NSMutableArray arrayWithArray:curLocalIdentifierArr];
-
- for (NSString*localIdentifier in preLocalIdentifierArr) {
- for (NSString* newlocalIdentifier in allArr) {
- if([localIdentifier isEqualToString:newlocalIdentifier]){
- [allArr removeObject:newlocalIdentifier];
- break;
- }
- }
- }
-
- NSMutableString *allLocalIdentifier= [NSMutableString new];
- for (NSString* newlocalIdentifier in allArr) {
- if(allLocalIdentifier.length >0){
- [allLocalIdentifier appendString:@"&"];
- }
- [allLocalIdentifier appendString:newlocalIdentifier];
- }
-
- //把上传失败的再次加上处理
- if (_lastModel.failTaskLocalIdentifier) {
- [allLocalIdentifier appendString:@"&"];
- [allLocalIdentifier appendString:_lastModel.failTaskLocalIdentifier];
- //清空
- _lastModel.failTaskLocalIdentifier = @"";
- }
-
- return allLocalIdentifier;
- }
- - (void)handelBackupsModelFun:(photosBackupsTaskModel*)backupsTaskModel
- {
- _curPhotosBackupsTaskMod = backupsTaskModel;
- _curPhotosBackupsTaskMod.isBackupsSuspendType = backupsSuspendNone;
- _curPhotosBackupsTaskMod.curBackupsState = backupsStateUploading;
-
- _curPhotosBackupsTaskMod.LocalIdentifierArr = [backupsTaskModel.curTaskLocalIdentifier componentsSeparatedByString:@"&"];
-
- if(_curPhotosBackupsTaskMod.LocalIdentifierArr.count == 0 ||_curPhotosBackupsTaskMod.curTaskLocalIdentifier.length == 0){
-
- _curPhotosBackupsTaskMod.didBackupsCount = 0;
- _curPhotosBackupsTaskMod.curBackupsState = backupsStateDone;
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
- return;
- }
-
- if(_curPhotosBackupsTaskMod.LocalIdentifierArr.count
- <= (_curPhotosBackupsTaskMod.didBackupsCount + _curPhotosBackupsTaskMod.failCount))
- {
- _curPhotosBackupsTaskMod.curBackupsState = backupsStateDone;
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
- return;
- }
-
- [self beginBackupsFileFun];
- }
- - (void)beginBackupsFileFun
- {
- BOOL isCanUseCellular = [HWDataManager getBoolWithKey:stringKeyAddSn(Const_file_Transfe_canUse_Cellular_all)];
- if(!isCanUseCellular){//不允许流量上传
- //
- if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusReachableViaWWAN){
- _isWifiNeedReBackupsType = YES;
- return;
- }
-
- }
-
- _isWifiNeedReBackupsType = NO;
- _isWWANNeedReBackupsType = NO;
-
- self.taskRenewTime = [iTools getNowTimeStamp];
-
- NSInteger index = _curPhotosBackupsTaskMod.didBackupsCount + _curPhotosBackupsTaskMod.failCount;
-
- if(!_curPhotosBackupsTaskMod.LocalIdentifierArr){
- _curPhotosBackupsTaskMod.LocalIdentifierArr = [_curPhotosBackupsTaskMod.curTaskLocalIdentifier componentsSeparatedByString:@"&"];
- }
-
- if(index >= _curPhotosBackupsTaskMod.LocalIdentifierArr.count){
- _curPhotosBackupsTaskMod.curBackupsState = backupsStateDone;
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
- _curPhotosBackupsTaskMod = nil;
- return;
- }
-
- NSString *curLocalIdentifier = _curPhotosBackupsTaskMod.LocalIdentifierArr[index];
- _curPhotosBackupsTaskMod.curFileLocalIdentifier = curLocalIdentifier;
-
- if(!curLocalIdentifier || curLocalIdentifier.length == 0)
- {
- [self getDataWrongToChangeFailFun];
- return;
- }
-
- _curPhotosBackupsTaskMod.didUploadBytes = 0;
- _curPhotosBackupsTaskMod.preDidUploadBytes = 0;
- _curPhotosBackupsTaskMod.totalBytes = 0;
- HLog(@"curLocalIdentifier:%@---%ld",curLocalIdentifier,_curPhotosBackupsTaskMod.failCount)
-
- //单次备份文件图片失败过多
- if(_getFileDataFailCount >500){
- _curPhotosBackupsTaskMod.failTaskLocalIdentifier = @"";
- NSString *tipStr = NSLocalizedString(@"backups_get_file_error_too_many",nil);
- [self changeBackupsFileStateToFailWith:tipStr];
- return;
- }
-
- PHFetchResult *fetchResult = [PHAsset fetchAssetsWithLocalIdentifiers:@[curLocalIdentifier] options:nil];
- PHAsset *curAsset = fetchResult.firstObject;
-
- NSString *fileName = [curAsset valueForKey:@"filename"];;
-
- if(!fileName || !curAsset){
- _isGetFileDataFailType = YES;
- [self getDataWrongToChangeFailFun];
- return;
- }
- _curPhotosBackupsTaskMod.filename = fileName;
-
- KWeakSelf
- if(curAsset.mediaType == PHAssetMediaTypeImage){
- _curPhotosBackupsTaskMod.curUploadFileType = uploadFileTypeImage;
-
- PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
- options.networkAccessAllowed = YES; // Allow downloading from iCloud
- options.version = PHImageRequestOptionsVersionCurrent;
- options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
-
- [[PHImageManager defaultManager] requestImageDataForAsset:curAsset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
- // 直接得到最终的 NSData 数据
- if (imageData) {
- weakSelf.isGetFileDataFailType = NO;
- [weakSelf afterGetImageDataFun:imageData];
- }
- else{
- weakSelf.isGetFileDataFailType = YES;
- [weakSelf getDataWrongToChangeFailFun];
- }
- }];
- }
- else{
- _curPhotosBackupsTaskMod.curUploadFileType = uploadFileTypeVideo;
-
- //判断文件是否在app内
- BOOL didSaveFile = [cachesFileManager checkFileIsSaveState:_curPhotosBackupsTaskMod.filename withType:uploadFileTypeVideo];
-
- if(didSaveFile){
- [self afterGetVideoDataFun];
- return;
- }
-
- //真正的视频数据
- PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
- options.version = PHVideoRequestOptionsVersionOriginal;
- options.networkAccessAllowed = YES; // Allow downloading from iCloud
- [[PHImageManager defaultManager] requestAVAssetForVideo:curAsset options:options resultHandler:^(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info) {
- if ([asset isKindOfClass:[AVURLAsset class]]) {
-
- AVURLAsset* urlAsset = (AVURLAsset*)asset;
-
- BOOL isSuc = [cachesFileManager copyVideoItemAtPath:[urlAsset.URL path] fileName:self->_curPhotosBackupsTaskMod.filename error:nil];
-
- if (isSuc) {
- weakSelf.isGetFileDataFailType = NO;
- [weakSelf afterGetVideoDataFun];
- }
- else{
- weakSelf.isGetFileDataFailType = YES;
- [weakSelf getDataWrongToChangeFailFun];
- }
- }
- else{
- weakSelf.isGetFileDataFailType = YES;
- [weakSelf getDataWrongToChangeFailFun];
- }
- }];
- }
-
- }
- - (void)getDataWrongToChangeFailFun
- {
- [self deleteVideoFun];
- _curPhotosBackupsTaskMod.failCount += 1;
-
- if(_isGetFileDataFailType){
- _getFileDataFailCount += 1;
- }
-
- [self RefreshDatabaseFun];
-
- if(_curPhotosBackupsTaskMod.curBackupsState == backupsStateSuspend){
- return;
- }
-
- [self beginBackupsFileFun];
- }
- #pragma mark 备份失败 待添加重试逻辑
- - (void)changeBackupsFileStateToFailWith:(NSString*)errorStr
- {
- [self deleteVideoFun];
- _curPhotosBackupsTaskMod.curBackupsState = backupsStateFail;
- _curPhotosBackupsTaskMod.backupsTipMsg = errorStr;
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
- }
- #pragma mark 1.4.2的失败处理
- - (void)changeBackupsFileStateToFailWithAfter142:(NSString*)errorStr
- {
- if(_curPhotosBackupsTaskMod.oneFileFailCount <= 3){
- _curPhotosBackupsTaskMod.oneFileFailCount ++;
- [[nasMixBackupsManager shareManager] cancelUploadAllTaskFun];
-
- //重新开始
- [self beginBackupsFileFun];
- }
- else{
-
- NSString * failTaskLocalIdentifier = nil;
- if(_curPhotosBackupsTaskMod.failTaskLocalIdentifier && _curPhotosBackupsTaskMod.failTaskLocalIdentifier.length > 0){
- failTaskLocalIdentifier = [[NSString alloc] initWithFormat:@"%@&%@",_curPhotosBackupsTaskMod.failTaskLocalIdentifier,_curPhotosBackupsTaskMod.curFileLocalIdentifier];
- }
- else{
- failTaskLocalIdentifier = [[NSString alloc] initWithFormat:@"%@",_curPhotosBackupsTaskMod.curFileLocalIdentifier];
- }
-
- _curPhotosBackupsTaskMod.oneFileFailCount = 0;
- [self getDataWrongToChangeFailFun];
- }
- }
- - (void)RefreshDatabaseFun
- {
- HLog(@"3 bg_id:%@",_curPhotosBackupsTaskMod.bg_id);
- [_curPhotosBackupsTaskMod bg_saveOrUpdateAsync:^(BOOL isSuccess) {
- if(isSuccess){
- }
- }];
- }
- - (void)afterGetImageDataFun:(NSData*)imageData
- {
- _curPhotosBackupsTaskMod.imageData = imageData;
- _curPhotosBackupsTaskMod.didUploadBytes = 0;
- _curPhotosBackupsTaskMod.totalBytes = [imageData length];
- //[[webSocketManager shareInstance] beginGotoBackupsFileFunBy:_curPhotosBackupsTaskMod];
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
- [self realbBeginUploadwithFrpFun];
- }
- - (void)deleteVideoFun
- {
- if(_curPhotosBackupsTaskMod.curUploadFileType == uploadFileTypeVideo){
- [cachesFileManager removeItemAtPath:_curPhotosBackupsTaskMod.filename type:uploadFileTypeVideo error:nil];
- }
- }
- - (void)afterGetVideoDataFun
- {
- NSString *filePath = [cachesFileManager getFilePathWithName:_curPhotosBackupsTaskMod.filename type:uploadFileTypeVideo]; // 文件路径
-
- NSFileManager *manager0 = [NSFileManager defaultManager];
- if([manager0 fileExistsAtPath:filePath]) {
- NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:filePath]; // 创建文件句柄
-
- if (fileHandle) {
- long long endOfFile = [fileHandle seekToEndOfFile];
-
- _curPhotosBackupsTaskMod.didUploadBytes = 0;
- _curPhotosBackupsTaskMod.totalBytes = endOfFile;
- [fileHandle closeFile];
- }
-
- }
-
-
- //[[webSocketManager shareInstance] beginGotoBackupsFileFunBy:_curPhotosBackupsTaskMod];
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
- [self realbBeginUploadwithFrpFun];
- }
- #pragma mark 转frp上传
- - (void)realbBeginUploadwithFrpFun{
-
- uploadFileDataModel *fileModel = [uploadFileDataModel new];
- fileModel.curUploadFileType = _curPhotosBackupsTaskMod.curUploadFileType;
- fileModel.filename = _curPhotosBackupsTaskMod.filename;
- fileModel.totalBytes = _curPhotosBackupsTaskMod.totalBytes;
- fileModel.didUploadBytes = 0;
- fileModel.preDidUploadBytes = 0;
- fileModel.localIdentifier = _curPhotosBackupsTaskMod.curTaskLocalIdentifier;
- fileModel.curUploadStateType = uploadStateUploading;
- fileModel.savePath = _curPhotosBackupsTaskMod.backupsPath;
- //fileModel.taskId
- //@property (nonatomic, retain) NSData *_Nullable imageData;//image or video
- if(_curPhotosBackupsTaskMod.curUploadFileType == uploadFileTypeImage){
- fileModel.imageData = _curPhotosBackupsTaskMod.imageData;
- }
-
-
- [[nasMixBackupsManager shareManager] addBackupsWithModels:@[fileModel]];
- }
- - (void)backupsFileDoneFun
- {
- [self deleteVideoFun];
- _curPhotosBackupsTaskMod.didBackupsCount += 1;
-
- _curPhotosBackupsTaskMod.oneFileFailCount = 0;
-
- // if(!_curPhotosBackupsTaskMod.didBackupsOneFileType)
- // {
- // _curPhotosBackupsTaskMod.curTaskBackupsCount += 1;
- // }
-
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
-
- if(_curPhotosBackupsTaskMod.curBackupsState == backupsStateSuspend){
- return;
- }
-
- //延时 进度条视觉效果
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
- [self beginBackupsFileFun];
- });
-
-
- }
- //修改文件上传的状态
- - (void)changeBackupsFileStateFun
- {
- self.taskRenewTime = [iTools getNowTimeStamp];
-
- [[NSNotificationCenter defaultCenter] postNotificationName:backupsFileRefreshNotification object:_curPhotosBackupsTaskMod];
- }
- - (void)suspendBackupsFileFun
- {
- if(!_curPhotosBackupsTaskMod){
- return;
- }
-
- _curPhotosBackupsTaskMod.curBackupsState = backupsStateSuspend;
- _curPhotosBackupsTaskMod.backupsTipMsg = NSLocalizedString(@"File_backups_Record_tip_Suspend",nil);
-
- [[nasMixBackupsManager shareManager] cancelUploadAllTaskFun];
-
- [_curPhotosBackupsTaskMod bg_saveOrUpdateAsync:^(BOOL isSuccess) {
- if(isSuccess){
- [self changeBackupsFileStateFun];
- }
- }];
-
- }
- //文件重新备份
- - (void)reBackupsFileFunBy:(photosBackupsTaskModel*)model
- {
- model.isBackupsSuspendType = backupsSuspendNone;
- model.curBackupsState = backupsStateUploading;
- _curPhotosBackupsTaskMod = model;
-
- [self RefreshDatabaseFun];
- [self changeBackupsFileStateFun];
-
- [self beginBackupsFileFun];
-
- // [_curPhotosBackupsTaskMod bg_saveOrUpdateAsync:^(BOOL isSuccess) {
- // if(isSuccess){
- // [self beginBackupsFileFun];
- // }
- // }];
-
- }
- //文件重新备份
- - (void)reBackupsFileFun
- {
- [self handlePhotosBackupsFun];
-
- //if(_curPhotosBackupsTaskMod.curBackupsState != backupsStateUploading)
- if(self->_lastModel.curBackupsState != backupsStateUploading){
- if(self->_lastModel.curBackupsState == backupsStateFail
- ||self->_lastModel.curBackupsState == backupsStateDone){//上次备份完成
- [self getAllAlbumsFun];
- }
- else{//继续上次的备份任务
- [self handelBackupsModelFun:self->_lastModel];
- }
- }
- }
- //检查是否需要重新备份
- - (void)checkReBackupsFileFun
- {
- if(!_curPhotosBackupsTaskMod){
- return;
- }
-
- if(_curPhotosBackupsTaskMod.curBackupsState != backupsStateUploading){
- return;
- }
-
- NSInteger curTime = [iTools getNowTimeStamp];
-
- if(self.taskRenewTime == 0){
- return;
- }
-
- if(curTime - self.taskRenewTime < 10){
- return;
- }
-
- [self beginBackupsFileFun];
- }
- //检查是否在备份中
- - (BOOL)checkBackupsingFun{
- if(!_curPhotosBackupsTaskMod){
- return NO;
- }
-
- if(_curPhotosBackupsTaskMod.curBackupsState == backupsStateSuspend){
- return NO;
- }
-
- return YES;
- }
- @end
|