@@ -58,7 +58,11 @@ - (void)prepare {
58
58
self.isUseCellularConnectionEnabled = [[[NSUserDefaults standardUserDefaults ] objectForKey: kIsUseCellularConnectionEnabled ] boolValue ];
59
59
self.isOnlyWhenChargingEnabled = [[[NSUserDefaults standardUserDefaults ] objectForKey: kIsOnlyWhenChargingEnabled ] boolValue ];
60
60
61
- [self resetOperationQueue ];
61
+ self.assetsOperationQueue = [[NSOperationQueue alloc ] init ];
62
+ if ([self .assetsOperationQueue respondsToSelector: @selector (qualityOfService )]) {
63
+ self.assetsOperationQueue .qualityOfService = NSOperationQualityOfServiceUtility;
64
+ }
65
+ self.assetsOperationQueue .maxConcurrentOperationCount = 1 ;
62
66
}
63
67
64
68
- (void )resetOperationQueue {
@@ -68,13 +72,13 @@ - (void)resetOperationQueue {
68
72
if ([self .assetsOperationQueue respondsToSelector: @selector (qualityOfService )]) {
69
73
self.assetsOperationQueue .qualityOfService = NSOperationQualityOfServiceUtility;
70
74
}
71
-
72
75
self.assetsOperationQueue .maxConcurrentOperationCount = 1 ;
73
76
74
77
[self setBadgeValue: nil ];
75
78
76
79
if (_isCameraUploadsEnabled) {
77
80
if (_isUseCellularConnectionEnabled || [MEGAReachabilityManager isReachableViaWiFi ]) {
81
+ MEGALogInfo (@" Enable Camera Uploads" );
78
82
[self setIsCameraUploadsEnabled: YES ];
79
83
}
80
84
}
@@ -88,7 +92,6 @@ - (void)setIsCameraUploadsEnabled:(BOOL)isCameraUploadsEnabled {
88
92
return ;
89
93
}
90
94
91
- MEGALogInfo (@" Camera Uploads enabled" );
92
95
self.lastUploadPhotoDate = [[NSUserDefaults standardUserDefaults ] objectForKey: kLastUploadPhotoDate ];
93
96
self.lastUploadVideoDate = [[NSUserDefaults standardUserDefaults ] objectForKey: kLastUploadVideoDate ];
94
97
if (![[NSUserDefaults standardUserDefaults ] objectForKey: kCameraUploadsNodeHandle ]){
@@ -133,7 +136,6 @@ - (void)setIsCameraUploadsEnabled:(BOOL)isCameraUploadsEnabled {
133
136
[self getAssetsForUpload ];
134
137
}
135
138
} else {
136
- MEGALogInfo (@" Camera Uploads disabled" );
137
139
[self resetOperationQueue ];
138
140
139
141
_isCameraUploadsEnabled = NO ;
@@ -177,15 +179,17 @@ - (void)getAssetsForUpload {
177
179
MEGALogInfo (@" Retrieved assets %ld " , assetsFetchResult.count );
178
180
179
181
[assetsFetchResult enumerateObjectsUsingBlock: ^(PHAsset *asset, NSUInteger index , BOOL *stop) {
180
- if (asset.mediaType == PHAssetMediaTypeVideo && self.isUploadVideosEnabled && ([asset.creationDate timeIntervalSince1970 ] >= [self .lastUploadVideoDate timeIntervalSince1970 ])) {
182
+ if (asset.mediaType == PHAssetMediaTypeVideo && self.isUploadVideosEnabled && ([asset.creationDate timeIntervalSince1970 ] > [self .lastUploadVideoDate timeIntervalSince1970 ])) {
181
183
MEGAAssetOperation *uploadAssetsOperation = [[MEGAAssetOperation alloc ] initWithPHAsset: asset parentNode: cameraUploadsNode automatically: YES ];
182
184
[_assetsOperationQueue addOperation: uploadAssetsOperation];
183
- } else if (asset.mediaType == PHAssetMediaTypeImage && ([asset.creationDate timeIntervalSince1970 ] >= [self .lastUploadPhotoDate timeIntervalSince1970 ])) {
185
+ } else if (asset.mediaType == PHAssetMediaTypeImage && ([asset.creationDate timeIntervalSince1970 ] > [self .lastUploadPhotoDate timeIntervalSince1970 ])) {
184
186
MEGAAssetOperation *uploadAssetsOperation = [[MEGAAssetOperation alloc ] initWithPHAsset: asset parentNode: cameraUploadsNode automatically: YES ];
185
187
[_assetsOperationQueue addOperation: uploadAssetsOperation];
186
188
}
187
189
}];
188
190
191
+ MEGALogInfo (@" Assets in the operation queue %ld " , _assetsOperationQueue.operationCount );
192
+
189
193
[self setBadgeValue: [NSString stringWithFormat: @" %ld " , [self .assetsOperationQueue operationCount ]]];
190
194
} else {
191
195
__block NSInteger totalAssets = 0 ;
@@ -197,10 +201,10 @@ - (void)getAssetsForUpload {
197
201
resultBlock: ^(ALAsset *asset) {
198
202
NSDate *assetCreationTime = [asset valueForProperty: ALAssetPropertyDate];
199
203
200
- if (asset != nil && [[asset valueForProperty: ALAssetPropertyType] isEqualToString: ALAssetTypeVideo] && self.isUploadVideosEnabled && ([assetCreationTime timeIntervalSince1970 ] >= [self .lastUploadVideoDate timeIntervalSince1970 ])) {
204
+ if (asset != nil && [[asset valueForProperty: ALAssetPropertyType] isEqualToString: ALAssetTypeVideo] && self.isUploadVideosEnabled && ([assetCreationTime timeIntervalSince1970 ] > [self .lastUploadVideoDate timeIntervalSince1970 ])) {
201
205
MEGAAssetOperation *uploadAssetsOperation = [[MEGAAssetOperation alloc ] initWithALAsset: asset cameraUploadNode: cameraUploadsNode];
202
206
[_assetsOperationQueue addOperation: uploadAssetsOperation];
203
- } else if (asset != nil && [[asset valueForProperty: ALAssetPropertyType] isEqualToString: ALAssetTypePhoto] && ([assetCreationTime timeIntervalSince1970 ] >= [self .lastUploadPhotoDate timeIntervalSince1970 ])) {
207
+ } else if (asset != nil && [[asset valueForProperty: ALAssetPropertyType] isEqualToString: ALAssetTypePhoto] && ([assetCreationTime timeIntervalSince1970 ] > [self .lastUploadPhotoDate timeIntervalSince1970 ])) {
204
208
MEGAAssetOperation *uploadAssetsOperation = [[MEGAAssetOperation alloc ] initWithALAsset: asset cameraUploadNode: cameraUploadsNode];
205
209
[_assetsOperationQueue addOperation: uploadAssetsOperation];
206
210
}
@@ -227,6 +231,7 @@ - (void)getAssetsForUpload {
227
231
[self .library enumerateGroupsWithTypes: ALAssetsGroupAll
228
232
usingBlock: assetGroupEnumerator
229
233
failureBlock: ^(NSError *error) {
234
+ MEGALogInfo (@" Disable Camera Uploads" );
230
235
[self setIsCameraUploadsEnabled: NO ];
231
236
[[NSNotificationCenter defaultCenter ] postNotificationName: @" kUserDeniedPhotoAccess" object: nil ];
232
237
MEGALogError (@" Enumerate groups with types failed with error: %@ " , error);
0 commit comments