mirror of
https://github.com/zoriya/react-native-background-downloader.git
synced 2026-08-16 02:44:29 +00:00
renamed taskconfig
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface TaskConfig : NSObject <NSCoding>
|
||||
@interface RNBGDTaskConfig : NSObject <NSCoding>
|
||||
|
||||
@property NSString * _Nonnull id;
|
||||
@property NSString * _Nonnull destination;
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
@end
|
||||
|
||||
@implementation TaskConfig
|
||||
@implementation RNBGDTaskConfig
|
||||
|
||||
- (id _Nullable )initWithDictionary: (NSDictionary *_Nonnull)dict {
|
||||
self = [super init];
|
||||
@@ -7,7 +7,7 @@
|
||||
//
|
||||
//
|
||||
#import "RNBackgroundDownload.h"
|
||||
#import "TaskConfig.h"
|
||||
#import "RNBGDTaskConfig.h"
|
||||
|
||||
#define URL_TO_CONFIG_MAP_KEY @"com.eko.bgdownloadmap"
|
||||
|
||||
@@ -16,8 +16,8 @@ static CompletionHandler storedCompletionHandler;
|
||||
@implementation RNBackgroundDownload {
|
||||
NSURLSession *urlSession;
|
||||
NSURLSessionConfiguration *sessionConfig;
|
||||
NSMutableDictionary<NSString *, TaskConfig *> *urlToConfigMap;
|
||||
NSMutableDictionary<NSURLSessionTask *, TaskConfig *> *taskToConfigMap;
|
||||
NSMutableDictionary<NSString *, RNBGDTaskConfig *> *urlToConfigMap;
|
||||
NSMutableDictionary<NSURLSessionTask *, RNBGDTaskConfig *> *taskToConfigMap;
|
||||
NSMutableDictionary<NSString *, NSURLSessionDownloadTask *> *idToTaskMap;
|
||||
NSMutableDictionary<NSString *, NSData *> *idToResumeDataMap;
|
||||
NSMutableDictionary<NSString *, NSNumber *> *idToPercentMap;
|
||||
@@ -81,7 +81,7 @@ RCT_EXPORT_MODULE();
|
||||
}
|
||||
|
||||
- (void)removeTaskFromMap: (NSURLSessionTask *)task {
|
||||
TaskConfig *taskConfig = taskToConfigMap[task];
|
||||
RNBGDTaskConfig *taskConfig = taskToConfigMap[task];
|
||||
[taskToConfigMap removeObjectForKey:task];
|
||||
[urlToConfigMap removeObjectForKey:task.currentRequest.URL.absoluteString];
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[self serialize: urlToConfigMap] forKey:URL_TO_CONFIG_MAP_KEY];
|
||||
@@ -116,7 +116,7 @@ RCT_EXPORT_METHOD(download: (NSDictionary *) options) {
|
||||
|
||||
[self lazyInitSession];
|
||||
NSURLSessionDownloadTask *task = [urlSession downloadTaskWithURL:[NSURL URLWithString:url]];
|
||||
TaskConfig *taskConfig = [[TaskConfig alloc] initWithDictionary: @{@"id": identifier, @"destination": destination}];
|
||||
RNBGDTaskConfig *taskConfig = [[RNBGDTaskConfig alloc] initWithDictionary: @{@"id": identifier, @"destination": destination}];
|
||||
taskToConfigMap[task] = taskConfig;
|
||||
idToTaskMap[identifier] = task;
|
||||
idToPercentMap[identifier] = @0.0;
|
||||
@@ -153,7 +153,7 @@ RCT_EXPORT_METHOD(checkForExistingDownloads: (RCTPromiseResolveBlock)resolve rej
|
||||
for (NSURLSessionDownloadTask *foundTask in downloadTasks) {
|
||||
NSURLSessionDownloadTask __strong *task = foundTask;
|
||||
NSLog(@"Found task with url: %@", task.currentRequest.URL.absoluteString);
|
||||
TaskConfig *taskConfig = urlToConfigMap[task.currentRequest.URL.absoluteString];
|
||||
RNBGDTaskConfig *taskConfig = urlToConfigMap[task.currentRequest.URL.absoluteString];
|
||||
if (taskConfig) {
|
||||
if (task.state == NSURLSessionTaskStateCompleted && task.countOfBytesReceived < task.countOfBytesExpectedToReceive) {
|
||||
if (task.error && task.error.code == -999 && task.error.userInfo[NSURLSessionDownloadTaskResumeData] != nil) {
|
||||
@@ -185,7 +185,7 @@ RCT_EXPORT_METHOD(checkForExistingDownloads: (RCTPromiseResolveBlock)resolve rej
|
||||
|
||||
#pragma mark - NSURLSessionDownloadDelegate methods
|
||||
- (void)URLSession:(nonnull NSURLSession *)session downloadTask:(nonnull NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(nonnull NSURL *)location {
|
||||
TaskConfig *taskCofig = taskToConfigMap[downloadTask];
|
||||
RNBGDTaskConfig *taskCofig = taskToConfigMap[downloadTask];
|
||||
if (taskCofig != nil) {
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
NSURL *destURL = [NSURL fileURLWithPath:taskCofig.destination];
|
||||
@@ -208,7 +208,7 @@ RCT_EXPORT_METHOD(checkForExistingDownloads: (RCTPromiseResolveBlock)resolve rej
|
||||
}
|
||||
|
||||
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite {
|
||||
TaskConfig *taskCofig = taskToConfigMap[downloadTask];
|
||||
RNBGDTaskConfig *taskCofig = taskToConfigMap[downloadTask];
|
||||
if (taskCofig != nil) {
|
||||
if (!taskCofig.reportedBegin) {
|
||||
[self sendEventWithName:@"downloadBegin" body:@{@"id": taskCofig.id, @"expctedBytes": [NSNumber numberWithLongLong: totalBytesExpectedToWrite]}];
|
||||
@@ -236,7 +236,7 @@ RCT_EXPORT_METHOD(checkForExistingDownloads: (RCTPromiseResolveBlock)resolve rej
|
||||
}
|
||||
|
||||
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error {
|
||||
TaskConfig *taskCofig = taskToConfigMap[task];
|
||||
RNBGDTaskConfig *taskCofig = taskToConfigMap[task];
|
||||
if (error != nil && error.code != -999 && taskCofig != nil) {
|
||||
if (self.bridge) {
|
||||
[self sendEventWithName:@"downloadFailed" body:@{@"id": taskCofig.id, @"error": [error localizedDescription]}];
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
134814201AA4EA6300B7C361 /* libRNBackgroundDownload.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNBackgroundDownload.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
565BF70F208F2C7C00F66231 /* TaskConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TaskConfig.h; sourceTree = "<group>"; };
|
||||
565BF70F208F2C7C00F66231 /* RNBGDTaskConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNBGDTaskConfig.h; sourceTree = "<group>"; };
|
||||
B3E7B5881CC2AC0600A0062D /* RNBackgroundDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNBackgroundDownload.h; sourceTree = "<group>"; };
|
||||
B3E7B5891CC2AC0600A0062D /* RNBackgroundDownload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNBackgroundDownload.m; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
@@ -51,7 +51,7 @@
|
||||
58B511D21A9E6C8500147676 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
565BF70F208F2C7C00F66231 /* TaskConfig.h */,
|
||||
565BF70F208F2C7C00F66231 /* RNBGDTaskConfig.h */,
|
||||
B3E7B5881CC2AC0600A0062D /* RNBackgroundDownload.h */,
|
||||
B3E7B5891CC2AC0600A0062D /* RNBackgroundDownload.m */,
|
||||
134814211AA4EA7D00B7C361 /* Products */,
|
||||
|
||||
Reference in New Issue
Block a user