|
@@ -11,6 +11,8 @@
|
|
|
#import "RAUtils.h"
|
|
#import "RAUtils.h"
|
|
|
|
|
|
|
|
NSString *const kUploadSetting = @"UploadSettingKey";
|
|
NSString *const kUploadSetting = @"UploadSettingKey";
|
|
|
|
|
+NSString *const UPLOAD_FINISH_NOTIFICATION = @"upload_finish_notification";
|
|
|
|
|
+NSString *const UPLOAD_COUNT_CHANGE_NOTIFICATION = @"upload_count_change_notification";
|
|
|
|
|
|
|
|
@interface RAUploadManager ()
|
|
@interface RAUploadManager ()
|
|
|
|
|
|
|
@@ -19,8 +21,69 @@ NSString *const kUploadSetting = @"UploadSettingKey";
|
|
|
|
|
|
|
|
@end
|
|
@end
|
|
|
|
|
|
|
|
|
|
+@implementation RAUPloadManagerConfigure
|
|
|
|
|
+
|
|
|
|
|
+- (instancetype)init {
|
|
|
|
|
+ if (self = [super init]) {
|
|
|
|
|
+
|
|
|
|
|
+ NSDictionary *param = [[NSUserDefaults standardUserDefaults] objectForKey:kUploadSetting];
|
|
|
|
|
+ if (param) {
|
|
|
|
|
+ BOOL autoUpload = [[param objectForKey:@"auto_upload"] boolValue];
|
|
|
|
|
+ BOOL autoRmFinish = [[param objectForKey:@"auto_rm_finish"] boolValue];
|
|
|
|
|
+ BOOL autoRmErr = [[param objectForKey:@"auto_rm_error"] boolValue];
|
|
|
|
|
+ BOOL onlyWiFi = [[param objectForKey:@"only_wifi"] boolValue];
|
|
|
|
|
+ int retryCount = [[param objectForKey:@"retry_count"] intValue];
|
|
|
|
|
+ NSNumber *timeInterval = [param objectForKey:@"retry_time_interval"];
|
|
|
|
|
+ if (timeInterval != nil) {
|
|
|
|
|
+ self.retryTimeIntetval = [timeInterval intValue];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ self.retryTimeIntetval = 300;
|
|
|
|
|
+ }
|
|
|
|
|
+ self.autoUpload = autoUpload;
|
|
|
|
|
+ self.autoRemoveFinish = autoRmFinish;
|
|
|
|
|
+ self.autoRemoveError = autoRmErr;
|
|
|
|
|
+ self.retryCount = retryCount;
|
|
|
|
|
+ self.onlyWIFI = onlyWiFi;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ self.autoUpload = YES;
|
|
|
|
|
+ self.autoRemoveFinish = NO;
|
|
|
|
|
+ self.autoRemoveError = NO;
|
|
|
|
|
+ self.retryCount = 5;
|
|
|
|
|
+ self.onlyWIFI = NO;
|
|
|
|
|
+ self.retryTimeIntetval = 300;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+- (void)save {
|
|
|
|
|
+
|
|
|
|
|
+ NSDictionary *param = @{
|
|
|
|
|
+ @"auto_upload" : @(self.autoUpload),
|
|
|
|
|
+ @"auto_rm_finish" : @(self.autoRemoveFinish),
|
|
|
|
|
+ @"auto_rm_error" : @(self.autoRemoveError),
|
|
|
|
|
+ @"retry_count" : @(self.retryCount),
|
|
|
|
|
+ @"only_wifi" : @(self.onlyWIFI),
|
|
|
|
|
+ @"retry_time_interval" : @(self.retryTimeIntetval)
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ [[NSUserDefaults standardUserDefaults] setObject:param forKey:kUploadSetting];
|
|
|
|
|
+ [[NSUserDefaults standardUserDefaults] synchronize];
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+@end
|
|
|
|
|
+
|
|
|
@implementation RAUploadManager
|
|
@implementation RAUploadManager
|
|
|
|
|
|
|
|
|
|
++ (void)configureUploadManager:(void(^)(RAUPloadManagerConfigure *configure))configure {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if (configure) {
|
|
|
|
|
+ RAUPloadManagerConfigure *cfg = [[RAUPloadManagerConfigure alloc] init];
|
|
|
|
|
+ configure(cfg);
|
|
|
|
|
+ [cfg save];
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
/*!
|
|
/*!
|
|
|
* Called by Reachability whenever status changes.
|
|
* Called by Reachability whenever status changes.
|
|
@@ -74,13 +137,13 @@ NSString *const kUploadSetting = @"UploadSettingKey";
|
|
|
self.retryTimeInterval = 300;
|
|
self.retryTimeInterval = 300;
|
|
|
}
|
|
}
|
|
|
self.autoStart = autoUpload;
|
|
self.autoStart = autoUpload;
|
|
|
-// self.removeFinish = autoRmFinish;
|
|
|
|
|
|
|
+ self.removeFinish = autoRmFinish;
|
|
|
// self.removeError = autoRmErr;
|
|
// self.removeError = autoRmErr;
|
|
|
self.maxRetry = retryCount;
|
|
self.maxRetry = retryCount;
|
|
|
self.onlyWiFi = onlyWiFi;
|
|
self.onlyWiFi = onlyWiFi;
|
|
|
} else {
|
|
} else {
|
|
|
self.autoStart = YES;
|
|
self.autoStart = YES;
|
|
|
-// self.removeFinish = YES;
|
|
|
|
|
|
|
+ self.removeFinish = NO;
|
|
|
// self.removeError = NO;
|
|
// self.removeError = NO;
|
|
|
self.maxRetry = 5;
|
|
self.maxRetry = 5;
|
|
|
self.onlyWiFi = NO;
|
|
self.onlyWiFi = NO;
|
|
@@ -176,6 +239,8 @@ NSString *const kUploadSetting = @"UploadSettingKey";
|
|
|
self.queue_status = QueueStatusAdd;
|
|
self.queue_status = QueueStatusAdd;
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ [[NSNotificationCenter defaultCenter] postNotificationName:UPLOAD_COUNT_CHANGE_NOTIFICATION object:nil];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
@@ -448,8 +513,9 @@ NSString *const kUploadSetting = @"UploadSettingKey";
|
|
|
switch ([block_task[@"status"] intValue]) {
|
|
switch ([block_task[@"status"] intValue]) {
|
|
|
case TaskStatusFinish:
|
|
case TaskStatusFinish:
|
|
|
{
|
|
{
|
|
|
-// if(weakSelf.removeFinish)
|
|
|
|
|
-// [self removeTask:block_task];
|
|
|
|
|
|
|
+ if(weakSelf.removeFinish)
|
|
|
|
|
+ [self removeTask:block_task];
|
|
|
|
|
+ [[NSNotificationCenter defaultCenter] postNotificationName:UPLOAD_FINISH_NOTIFICATION object:nil userInfo:block_task];
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case TaskStatusError:
|
|
case TaskStatusError:
|